I don't believe what you did was wrong, evil or egotistical. I believe you found a solution that needs to be refactored and while discovering complexity within your code.
I would refactor and keep it stupid simple (of course make sure you have comments for the code that doesn't speak for itself).