read me and some improvement