Moving stuff around to be a true MVC approach, still not quite there yet but nearly