added AbstractOperator type