make base exceptions abstract