initial implementation of categories