refactor into methods that say what each is, so that this reads nice and clean.