price should be greater than zero