More moving of functionality into responsible classes.
Broke out Factories.
More moving functionality to class of responsibility; un-hard-coding.