Added extra constructors to exception so I can chain causes
Removed unneeded checks for null and fixed race condition in singleton pattern