looking into polymorphic value classes