Added constructors, methods, and operator overloads for BaseInvariant