add duck type and homework