wow there's a lot to refactor