this method `raise`s a lot... does it really reflect exceptional state?