documentation, refactoring