UIApplicationDelegate class that separates the different responsibilities into more more reusable classes.