refactoring, add categories