Sometimes in software development you look at a system and think that the only way forward is a complete rewrite.