for replay thread