remove unused FileUtils
more copyrights updating
simplify some functions in goCommand
if any method is virtual, destructor must be virtual, see tiny.cc/cppfaq20-7