refactor the views to make them work in a more consistent manner