actually handle errors