implemented Diff* and Optimize* in Operator classes
removed unnecessary Function::Is* methods