implement more promise arguments