One other addition… not everything in JavaScript is an object. This was closer to truth in olden days. But… for example, quite a number of common features are not objects in JavaScript: primitive literals are not objects, undefined is not an object, null is not an object (semi-arguably,) and an arrow function is technically not an object (cannot be instantiated, there is no constructor, hence no this binding.) Great writeup though and it helped me learn more about promises from yet another talented Medium writer, thanks for all the hard work you put into this tutorial!