When you have just found that you solved some overly general problem (such as CircleAndEllipseProblem or ChickenAndEggProblem), don't rush to implement it in code. Just answer the simple question: what is your solution good for? See also: SphericalHorseInVacuum.