Rather than returning a status boolean, why not raise an exception?