add a 'args' parameter to functions for optimization

 - 'args' directly is fed to the "target function" such as opfunc.