Promises via prototypes. You probably don't want to use this.