Refactoring the controller part of my MVC to be a bit more abstract and MVCish