fix Invoke to allow variadic function
add golang function: dirname splitpath joinpath expanduser