Final working version, UML fixed