General point about the library - should it just swallow and log exceptions? Maybe it should throw or call onFailure() on the listener.