polymorphic value classes now work fine