replay implementation start