Properly Factored MVC

Refactoring