steps 1-6 tested via posted cases, constructors commented but not removed