Added the rest of the controllers and restructured code to make use of them