change the members of PromiseResult type to public