use categories - closes #40