update source code and README.MD