optimized getCategories