wip:refactor