@Dannny: Every solution gets more messy / complex over time, without exception. This is because the incremental cost to deploy a hack to solve a current issue is significantly cheaper than solving the problem in a clean way. This is called "Technical Debt". And because we accrue technical debt on a daily basis, and rarely if ever "pay back" (ie clean up), we need a complete start from scratch every x years.