add Category and unit tests