Same rules as Takeway_challenge, but approached with a different, more object-oriented approach.