Ah, it’s just one of those days! It seems that I can wail about this topic in non-stop mode. Why do people overcomplicate problem domain with sophisticated solution. Have you tried to read what you wrote the day after? A week after? No? Then, read it, and try to guess what you’ve been trying to achieve! And at the meantime, read this Programmers Stackexchange topic on Code Elegance.