modifed source and README