Topic/refactor views

I will squash this.