try a more MVC style