Rewrite to use Polymorphic API