Source: http://englishonlineclub.com/pdf/Python%20-%20Master%20the%20Art%20of%20Design%20Patterns%20[EnglishOnlineClub.com].pdf