A basic MVC puzzle implementation