refactoring
fix bug
refactoring