Refactoring the 4 different flows into thier own classes to be more
clear about how each are configured.