added OperationDef class