doGeneration wasn't giving the best of a generation just the last string better than the previous best