Failures 2.0 failure objects

This is a big change, so I'm open to suggestions/additions/improvements.
Note: this `&block` argument is unused and can be removed.