second version improved MVC