added polymorphic operator enum