fault dealing has some bugs