Fector out PromiseCompleter
Better names