Moved error condition into the onError() method
Removed call back hell, made the code "error core ish"