generated Product model