refined MVC principles