Abstract MVC functionality