polymorphic tree