guides refactoring