replace EquationControls subtypes with factory functions