add data guard.
Merge branch 'master' into tab_completion
Fixed some errors from feedback