prefer Sub.prototype = Object.create(Sup.prototype) to Sub.__proto__ = Sup.prototype
prefer Sub.prototype = Object.create(Sup.prototype) to Sub.__proto__ = Sup.prototype