[wip] refactor