refactor feature specs and views to take a more "outside-in" approach