pull me request

leave your comments and changes :)
This class seems to be doing a lot of work, including calculating the final price of the basket. Perhaps you could use a `Checkout` class to perform the actual calculations, and use this class to hold the logic about which discount should be applied.