refactoring project, documentation included