DRY Improvements

Working toward splitting up into much smaller functions, reducing event
listeners, simplifying.