Added Category class

I wish gitignore worked... I keep overlooking files in this giant list
of crap that I don't want to commit