added interface, updated uml
added tests