Make tests pass. Hope to refactor in the future, thinking it might break with more corner cases and that it would flow better if I had a clearer idea of what the responsibilities of each method are in terms of passing information between them