finished uml stuff