beginning refactor, not too far down the rabiit hole.... yet
refactoring