Introduced Repository Pattern, more interfaces, further seperation of concerns and controller logic now unit testable