Split out responsabilities

The app class was pretty big