documentation refactored