price is Decimal instead of float