MVC State Engine