version
fix #1 return settled promise
bug fix: keep initial value
shorter require
update tests