implemented some exceptions