seperated into MVC