implement MVC