DiscountStrategy Added new abstract layer and worked on delegation