but maybe it's too much work to keep both threadId and currentNum... I can understand