Refactored Dealer, favouring composition over inheritance.