laying out groundwork for controllers