optimized product list with directive