refactoring doc