refactoring, documentation stuff