main exceptions defined