split routing, request-handling, and application config/run