refactor dshell
fix conflict