further refactoring, huge method name to outline that something needs to change