fix bug
refator