let's throw some exceptions when critical error occured.