Change PermBuilderFactory to an abstract class with default IContext implementations