You have `expect_or_allow` conditionals in 3 places.  I think we'd be better off with two separate classes: one for expect, one for allow, and then there would be no need for conditionals.