Added more comments and validation to the lower level classes in the DiscountStrategy