add run_shell
improve workspace