perf($q): reduce the memory footprint
perf($q): fully move the state to the promise