revision refactoring