clean up the API to simply return the Try monad wrapping the internal exception instead
of trying to map everything to a knows exception