diff --git a/Transceiver52M/ms/bladerf_specific.h b/Transceiver52M/ms/bladerf_specific.h
index d31ea29..a440125 100644
--- a/Transceiver52M/ms/bladerf_specific.h
+++ b/Transceiver52M/ms/bladerf_specific.h
@@ -186,7 +186,6 @@
 };
 
 using dev_buf_t = typeof(blade_otw_buffer_helper<BLADE_BUFFER_SIZE, blade_speed_buffer_type::SS>::x);
-// using buf_in_use = blade_otw_buffer<2, blade_speed_buffer_type::SS>;
 using bh_fn_t = std::function<int(dev_buf_t *)>;
 
 template <typename T>
@@ -194,7 +193,6 @@
 	struct bladerf *dev;
 	struct bladerf_stream *rx_stream;
 	struct bladerf_stream *tx_stream;
-	// using pkt2buf = blade_otw_buffer<2, blade_speed_buffer_type::SS>;
 	using tx_buf_q_type = spsc_cond_timeout<BLADE_NUM_BUFFERS, dev_buf_t *, true, false>;
 	const unsigned int rxFullScale, txFullScale;
 	const int rxtxdelay;
diff --git a/Transceiver52M/ms/ms.cpp b/Transceiver52M/ms/ms.cpp
index 4ae8668..f1a915c 100644
--- a/Transceiver52M/ms/ms.cpp
+++ b/Transceiver52M/ms/ms.cpp
@@ -22,19 +22,13 @@
 #include "GSMCommon.h"
 #include <atomic>
 #include <cassert>
-#include <complex>
+
 #include <iostream>
 #include <cstdlib>
 #include <cstdio>
-#include <thread>
-#include <fstream>
 
 #include "ms.h"
 
-extern "C" {
-#include "sch.h"
-}
-
 #include "threadsched.h"
 
 dummylog ms_trx::dummy_log;
diff --git a/Transceiver52M/ms/ms.h b/Transceiver52M/ms/ms.h
index e088f73..9ac2171 100644
--- a/Transceiver52M/ms/ms.h
+++ b/Transceiver52M/ms/ms.h
@@ -181,7 +181,6 @@
 		std::lock_guard<std::mutex> g(m);
 		global_time_keeper.incTN(1);
 		global_ts_keeper = new_ts;
-		// std::cerr << "u " << new_ts << std::endl;
 	}
 	void inc_and_update_safe(int64_t new_ts)
 	{
@@ -191,7 +190,6 @@
 		assert(diff > 0.5 * ONE_TS_BURST_LEN);
 		global_time_keeper.incTN(1);
 		global_ts_keeper = new_ts;
-		// std::cerr << "s " << new_ts << std::endl;
 	}
 	void dec_by_one()
 	{
@@ -217,8 +215,6 @@
 	}
 };
 
-using ts_hitter_q_t = spsc_cond<64, GSM::Time, true, false>;
-
 // used to globally initialize the sched/hw information
 struct sched_hw_info {
 	int hw_cpus;
diff --git a/Transceiver52M/ms/ms_rx_lower.cpp b/Transceiver52M/ms/ms_rx_lower.cpp
index 3527a8b..71d49aa 100644
--- a/Transceiver52M/ms/ms_rx_lower.cpp
+++ b/Transceiver52M/ms/ms_rx_lower.cpp
@@ -89,8 +89,6 @@
 			mBSIC = sch.bsic;
 			mTSC = sch.bsic & 0x7;
 			timekeeper.set(fn, 0);
-			// global_time_keeper.FN(fn);
-			// global_time_keeper.TN(0);
 		}
 
 		return true;
@@ -261,7 +259,6 @@
 		clamp_array(bits->begin(), 148, 1.5f);
 
 		float_to_sbit(&bits->begin()[0], (signed char *)&sch_demod_bits[0], 62, 148);
-		// float_to_sbit(&bits->begin()[106], &data[39], 62, 39);
 
 		if (decode_sch((char *)sch_demod_bits, is_first_sch_acq)) {
 			auto current_gsm_time_updated = timekeeper.gsmtime();
@@ -371,7 +368,6 @@
 
 		if (fracts)
 			timekeeper.inc_both();
-		// timekeeper.inc_and_update(first_sch_ts_start + 1 * ONE_TS_BURST_LEN);
 
 		timekeeper.dec_by_one(); // oops, off by one?
 
diff --git a/Transceiver52M/ms/threadpool.h b/Transceiver52M/ms/threadpool.h
index 4b1eefd..0574236 100644
--- a/Transceiver52M/ms/threadpool.h
+++ b/Transceiver52M/ms/threadpool.h
@@ -21,7 +21,6 @@
  */
 
 #include <atomic>
-#include <vector>
 #include <future>
 #include <mutex>
 #include <queue>
