yet again refactoring, getting closer to wrapping my brain around it and it being gtg