updated promise-object version