As with all COM components, an MSXML object is programmatically instantiated by CLSID or ProgID. Multiple viewer objects can be instantiated for one Session object. An enum type cannot be instantiated directly. Static variables are instantiated as well. In a "prenex polymorphic" system, type variables may not be instantiated with polymorphic types. CFCs may also be instantiated as objects. Actions had parameters (variables that may be instantiated with objects), preconditions and effects. Enumeration classes cannot be instantiated anywhere except in the enumeration class itself. Instead, a new String object is instantiated and given the data "abc" during its construction. WinFS types are exposed as .NET classes, which can be instantiated as .NET objects. Interfaces cannot be instantiated, but rather are implemented. These classes are usually not instantiated and consist exclusively of static members. In Aristotle's view, universals can be instantiated multiple times. A variable can become instantiated (bound to equal a specific term) via unification. Classes containing pure virtual methods are termed "abstract" and they cannot be instantiated directly.