refactoring
groundwork