Anytime you switch on class or type of something internal to the object, its a good case for duck typing.