raise exception instead of skirting the issue
improve exception msg