Iteration 3

Implementing categories.