separated the callback to onSuccess and onFailure to avoid having to check if e is null each time.  made it abstract class instead of interface so that you only have to implement what you want.