Finishing the initial refactor with broken out controllers

Change-Id: I78f0852e7b3136143cf7f7c75ce5f8f5363d834a