Object-Oriented Design with Python