Rename variables.
Refactoring.
Still refactoring.
Still cutting things down.
Renaming.
Refactoring.
Renaming.
Remove unused classes.
More consistent naming.
Gut the logic, start TDD.
Continuing to refactor and test.
Verify tests for multiple permissions at the same time.
Test for multiple rules.
Fix scoping around a few tests.
Put some tests around preventing steps.
The smoke tests still pass.
... so let's drop them.
Work on the constructors.
Refactor.
Refactor the constructor.