> You solve 3 completely different problems using the exactly same code and have the gall to call this less complicated?
That's the point, though. If the code is identical, then the problems are identical. There is less complexity through abstraction.