refactoring for documentation