handle errors internally