add box, result and promise