adding solution with MVC decoupling