refactoring block