diff --git a/strafe-client/src/session.rs b/strafe-client/src/session.rs
index c9226a6..8eb3858 100644
--- a/strafe-client/src/session.rs
+++ b/strafe-client/src/session.rs
@@ -433,37 +433,29 @@ impl InstructionEmitter<StepInstruction> for Session{
 
 #[cfg(test)]
 mod test{
-	use crate::{file,physics,session};
+	use crate::{file,physics};
 	#[test]
 	fn run_replay(){
-		let map=file::load("bhop_maps/5692113331.snfm");
-		let bot=file::load("replays/703s+098360278ns.snfb");
+		println!("loading map file..");
+		let map=file::load("../tools/bhop_maps/5692113331.snfm");
+		println!("loading bot file..");
+		let bot=file::load("../tools/replays/534s+997497968ns.snfb");
 		if let (Ok(file::Format2::Map(map)),Ok(file::Format2::Bot(bot)))=(map,bot){
 			// create recording
-			let recording=session::Recording::new(bot.instructions);
-
-			// create timer starting at first instruction (or zero if the list is empty)
-			let new_time=recording.instructions.first().map_or(physics::Time::ZERO,|ins|ins.time);
-			let end_time=recording.instructions.last().map_or(physics::Time::ZERO,|ins|ins.time);
-			let timer=strafesnet_common::timer::Timer::unpaused(strafesnet_common::session::Time::ZERO,new_time);
-
-			// create default physics state
-			let simulation=session::Simulation::new(timer,Default::default());
-
-			// invent a new bot id and insert the replay
-			let mut replay=session::Replay::new(
-				recording,
-				simulation,
-			);
-			let mut data=physics::PhysicsData::default();
-			println!("loading map..");
-			data.generate_models(&map);
+			let mut physics_data=physics::PhysicsData::default();
+			println!("generating models..");
+			physics_data.generate_models(&map);
 			println!("simulating...");
-			replay.advance(&data,(end_time-new_time).coerce());
-			match replay.simulation.physics.get_finish_time(){
+			let mut physics=physics::PhysicsState::default();
+			for ins in bot.instructions{
+				physics::PhysicsContext::run_input_instruction(&mut physics,&physics_data,ins);
+			}
+			match physics.get_finish_time(){
 				Some(time)=>println!("finish time:{}",time),
 				None=>println!("simulation did not end in finished state"),
 			}
+		}else{
+			panic!("missing files");
 		}
 	}
 	#[test]