add function call interpterter
finish merge