Made covariant to all Op's and it's subclasses