I'm going to commit these changes, but the routing logic is getting too complex, time to simplify