Refactoring reducer