refactoring in all forms