beginnings of an MVC layer