added some explanation to the exceptions