placeholder refactoring WIP