Add basic category functionality. Still some TBD, but it works.