Some cleanups around object creation.
Create and test an ES manifestation.

This also makes it clearer in the code what "newly-created promise object" is supposed to mean.
Rename implementation file.