moved controller into router

the app isn’t complex enough to justify being broken out
fixed router so events only execute after views are listening for them