Switch from failure to exceptions

The Either instance is less clean - not sure how I feel about it.