Had to rip a bunch out to refactor toward interfaces across the board