Lots of documentation and small refactoring for Java
Documentation and small refactoring for Python
small documentation