Overhauls category implementation

Closes #1222