Sorting out exception protocols
Adding some failure tests