control class improved with separate parenting, constraining, and grouping methods