wip on refactor