"You aren't gonna need it." “Ron Jeffries
Code is sometimes more complicated than it has to be to solve the problem at hand. There are two causes for this problem:
Remove these problems when you run into them. You'll often find that this can lead to further insight and simplification.