better duck typing