Start refactoring the models, add AbstractController