product iteration