Throw exceptions instead of returning null