refactored and added category list