refactor
fixed bug
refactor