Understanding the requirement to work with multiple base classes