category model data validation. closes #22