General purpose MVC implementation