Now using ES6 promises on the XHR stuff.