created MVC approach