Use exception class hierarchy not base exceptions
Don't memoize the passFactory instance