contracts almost done according to MVC