updated uml diagram. designed with mvc in mind