update documentation, add semi UML