added op function