refactoring, documentation