New solution
vs project fun, polymorphic support not yet working