Finishing the initial refactor with broken out controllers

Change-Id: I78f0852e7b3136143cf7f7c75ce5f8f5363d834a
Merge pull request #10 from kkochis/refactor

Finishing the initial refactor with broken out controllers