updated listProducts implementation