[update] refactoring