fix error handling idiom