initial start of refactoring/rebuild