what's this about? the `if` will always be taken, since you've set `self.raise_allowed` just above it?