before change
some bugs haven't been fixed