polymorphism with contenttypes