update this file, need to be carefully tested
this file need to be carefully tested and refined, suggest to do it @Home
Merge branch 'master' into gmet