enhance interpreter to support call user defined function