[impl] refactor