[UPDATE] refactoring
[FIX] bugs