refactored products, make infinite scroll