add support for Android < 4.4
use then/catch instead of then(success,error) + improved error handling by leveraging errorCallback