Design improvements - further compartmentalizing MVC