try to not be dumb about error handling