fix promise.js and rename it to once.js