adapter pattern example: ducks and iterenum