categories refactored