TODO: we should probably distinguish cascade and 404