Revamped the controller structure and took a more "fat" model approach