actually, since you mentioned this, i cleaned up the promise detection while i was here to be more consistent with the spec. take another quick look?