Changes to make controllers more anaemic and implement strong model for better reusability, and testing