incorporate team modes, and add controller tests