the mvc copied from https://github.com/ndavison/Nathan-MVC