Refactors into something that more closely resembles MVC