refactoring
doc