inital test
added first test for A
removed duplication of checkout construction
added total
added discounter
added multiple discounts
introduced B
reduced duplication in pricing
introduced count keep
tidied up
added 2 Bs
added an offers list
refactored to methods for readability
added C
added D
added edge case testes
refactored