allow null for discount