working but categorization is awful. I need a new algorithm. about to start the BST