refactor feature spec to be higher level of abstraction