Avoid duplicated factory code for passes
Fix duplicate type name in pass namespace
Use exception class hierarchy not base exceptions
Don't memoize the passFactory instance
More replaced exception classes