close#94 close #95 close #96 close #97 close #98 fixed some bugs