Improve all_products method, and category interface