Create a main controller to handle interaction between subviews
Refactor views, add observer and implement helper methods