also, I want the type params to be `Failure` and `Success` for more clarity