control-group: abstract helper for grouping different controls (close #540)