copied files from ClientTools