category refactor