use exceptions instead of false