fix bug at some extent
revert