added in categories
major updates again to add some syntactic sugar