refactor views to be more coherent