simple extend and polymorph stuff