fix op-equals operations and improve argument handling for user defined functions