clean up, add uml