Experiment with separate actions
Factor some code out into base classes
&& -> if
Factor out some common code the base class
|| -> if
No need to have these public