first steps to better architecture

(this makes this branch NOT runnable!)
More cleanup for the upcoming routes introduction
INTRODUCING ROUTES

this is the 3rd and last commit that restructures the app.