handle errors in a diff way, maybe