Added tighter MVC implementation