add category
add additional validations
flesh out the factory
all null: false to category, number, and label