A promises library