new shell function.