Thanks @davehunt! @bitgeeky: Dave's suggestion of different methods for `login_as_new_user` vs `login_as_existing_user` is another interesting approach, but I don't think it would scale for us as we expect to have other post-login expectations in the future, so I feel like that leaves us two decent options:

1. As Dave pointed out, we could just leave it as is and instantiate the page object in the test. Although this is what my original comment didn't like, I can see how it's not that different from having to pass an expectation into the `login` method.
2. Pass an expectation into the `login` method and then `login` knows which page object to return based on the expectation.

Are you fine going one of those two routes and then addressing the other comments?