diff --git a/python-api-src/lib_replay_unit.cpp b/python-api-src/lib_replay_unit.cpp
index 9dfd83d1c2973ce871ef7fa859684e9f1591b2fa..7a70770dffa7c1738104f451276f1b6f9aaaf3bb 100644
--- a/python-api-src/lib_replay_unit.cpp
+++ b/python-api-src/lib_replay_unit.cpp
@@ -4,41 +4,41 @@ namespace py = pybind11;
 
 void define_replay_unit(py::module & m)
 {
-	py::class_<UnitInformation>(m, "ReplayUnit")
-		.def_property_readonly("id", &UnitInformation::getID)
-		.def_property_readonly("unit_type", &UnitInformation::getType, "The id of the type")
-		.def_property_readonly("unit_type_name", &UnitInformation::getTypeName, "The name of the type")
-		.def_property_readonly("position", &UnitInformation::getPosition, "The :class:`library.Point2D` of the unit")
-		.def_property_readonly("tile_position", &UnitInformation::getTilePosition, "The :class:`library.Point2DI` of the unit")
-		.def_property_readonly("hit_points", &UnitInformation::getHitPoints)
-		.def_property_readonly("shields", &UnitInformation::getShields)
-		.def_property_readonly("energy", &UnitInformation::getEnergy)
-		.def_property_readonly("player", &UnitInformation::getPlayer)
-		.def_property_readonly("build_percentage", &UnitInformation::getBuildPercentage)
-		.def_property_readonly("weapon_cooldown", &UnitInformation::getWeaponCooldown)
-		.def_property_readonly("is_completed", &UnitInformation::isCompleted)
-		.def_property_readonly("is_being_constructed", &UnitInformation::isBeingConstructed)
-		.def_property_readonly("is_cloaked", &UnitInformation::isCloaked)
-		.def_property_readonly("is_flying", &UnitInformation::isFlying)
-		.def_property_readonly("buffs", &UnitInformation::buffs)
-		.def_property_readonly("is_alive", &UnitInformation::isAlive)
-		.def_property_readonly("is_powered", &UnitInformation::isPowered)
-		.def_property_readonly("is_idle", &UnitInformation::isIdle)
-		.def_property_readonly("is_burrowed", &UnitInformation::isBurrowed)
-		.def_property_readonly("is_valid", &UnitInformation::isValid)
-		.def_property_readonly("is_training", &UnitInformation::isTraining)
-		.def_property_readonly("is_blip", &UnitInformation::isBlip)
+	py::class_<ReplayUnit>(m, "ReplayUnit")
+		.def_property_readonly("id", &ReplayUnit::getID)
+		.def_property_readonly("unit_type", &ReplayUnit::getType, "The id of the type")
+		.def_property_readonly("unit_type_name", &ReplayUnit::getTypeName, "The name of the type")
+		.def_property_readonly("position", &ReplayUnit::getPosition, "The :class:`library.Point2D` of the unit")
+		.def_property_readonly("tile_position", &ReplayUnit::getTilePosition, "The :class:`library.Point2DI` of the unit")
+		.def_property_readonly("hit_points", &ReplayUnit::getHitPoints)
+		.def_property_readonly("shields", &ReplayUnit::getShields)
+		.def_property_readonly("energy", &ReplayUnit::getEnergy)
+		.def_property_readonly("player", &ReplayUnit::getPlayer)
+		.def_property_readonly("build_percentage", &ReplayUnit::getBuildPercentage)
+		.def_property_readonly("weapon_cooldown", &ReplayUnit::getWeaponCooldown)
+		.def_property_readonly("is_completed", &ReplayUnit::isCompleted)
+		.def_property_readonly("is_being_constructed", &ReplayUnit::isBeingConstructed)
+		.def_property_readonly("is_cloaked", &ReplayUnit::isCloaked)
+		.def_property_readonly("is_flying", &ReplayUnit::isFlying)
+		.def_property_readonly("buffs", &ReplayUnit::buffs)
+		.def_property_readonly("is_alive", &ReplayUnit::isAlive)
+		.def_property_readonly("is_powered", &ReplayUnit::isPowered)
+		.def_property_readonly("is_idle", &ReplayUnit::isIdle)
+		.def_property_readonly("is_burrowed", &ReplayUnit::isBurrowed)
+		.def_property_readonly("is_valid", &ReplayUnit::isValid)
+		.def_property_readonly("is_training", &ReplayUnit::isTraining)
+		.def_property_readonly("is_blip", &ReplayUnit::isBlip)
 		// Has target and target crashes if the target died in the same frame
-		//.def_property_readonly("target", &UnitInformation::getTarget)
-		//.def_property_readonly("has_target", &UnitInformation::hasTarget)
-		.def_property_readonly("max_hit_points", &UnitInformation::getMaxHitPoints)
-		.def_property_readonly("progress", &UnitInformation::getProgress)
-		.def_property_readonly("current_ability_id", &UnitInformation::getCurrentAbilityID, "The AbilityID of currently used ability")
-		.def_property_readonly("facing", &UnitInformation::getFacing)
-		.def_property_readonly("radius", &UnitInformation::getRadius)
-		.def_property_readonly("is_carrying_minerals", &UnitInformation::isCarryingMinerals)
-		.def("__hash__", [](const UnitInformation & unit) { return std::hash<const sc2::Unit *>{}(unit.getUnitPtr()); })
+		//.def_property_readonly("target", &ReplayUnit::getTarget)
+		//.def_property_readonly("has_target", &ReplayUnit::hasTarget)
+		.def_property_readonly("max_hit_points", &ReplayUnit::getMaxHitPoints)
+		.def_property_readonly("progress", &ReplayUnit::getProgress)
+		.def_property_readonly("current_ability_id", &ReplayUnit::getCurrentAbilityID, "The AbilityID of currently used ability")
+		.def_property_readonly("facing", &ReplayUnit::getFacing)
+		.def_property_readonly("radius", &ReplayUnit::getRadius)
+		.def_property_readonly("is_carrying_minerals", &ReplayUnit::isCarryingMinerals)
+		.def("__hash__", [](const ReplayUnit & unit) { return std::hash<const sc2::Unit *>{}(unit.getUnitPtr()); })
 		.def(py::self == py::self)
-		.def("__repr__", [](const UnitInformation & unit) { return "<Unit of type: '" + unit.getTypeName() + "'>"; })
+		.def("__repr__", [](const ReplayUnit & unit) { return "<Unit of type: '" + unit.getTypeName() + "'>"; })
 		;
 }
diff --git a/python-api-src/library.cpp b/python-api-src/library.cpp
index 21611296f50f063c9d88e725b04d5ba731f1e4ef..1ec48212a0fa9b30beef9c3901cd7cc8c87d01dd 100644
--- a/python-api-src/library.cpp
+++ b/python-api-src/library.cpp
@@ -99,7 +99,6 @@ PYBIND11_MODULE(library, m)
 		.def("on_step", &IDAReplayObserver::OnStep)
 		.def("on_game_end", &IDAReplayObserver::OnGameEnd)
 		.def("get_all_units", &IDAReplayObserver::GetAllUnits, "Returns a list of all units")
-		.def("on_unit_destroyed", &IDAReplayObserver::OnUnitInfomationDestroyed, "unit"_a)
 		;
 
     py::class_<sc2::PlayerSetup>(m, "PlayerSetup");
diff --git a/src/IDAReplayObserver.cpp b/src/IDAReplayObserver.cpp
index 26c57d0dd4e8ea849b899f9692cb74242a8f0374..13728f586a0b3293b36dd0d5c89c4e3b1f7ff54e 100644
--- a/src/IDAReplayObserver.cpp
+++ b/src/IDAReplayObserver.cpp
@@ -3,14 +3,11 @@
 
 void IDAReplayObserver::setUnits()
 {
-	
 	m_allUnits.clear();
 	for (auto & unit : Observation()->GetUnits())
 	{
-		m_allUnits.push_back(UnitInformation(unit, *this));
+		m_allUnits.push_back(ReplayUnit(unit, *this));
 	}
-	
-
 }
 
 IDAReplayObserver::IDAReplayObserver():
@@ -20,10 +17,7 @@ IDAReplayObserver::IDAReplayObserver():
 
 void IDAReplayObserver::OnGameStart()
 {
-	
-
 	setUnits();
-
 }
 
 void IDAReplayObserver::OnStep()
@@ -37,21 +31,19 @@ void IDAReplayObserver::OnGameEnd()
 
 void IDAReplayObserver::OnUnitDestroyed(const sc2::Unit* unit)
 {
-	UnitInformation unitInformation = UnitInformation(unit, *this);
+	ReplayUnit unitInformation = ReplayUnit(unit, *this);
 	OnUnitInfomationDestroyed(&unitInformation);
 }
 
+void IDAReplayObserver::OnUnitInfomationDestroyed(const ReplayUnit *)
+{
+}
+
 
 
-UnitInformation IDAReplayObserver::GetUnit(const CCUnitID tag) const
+ReplayUnit IDAReplayObserver::GetUnit(const CCUnitID tag) const
 {		
-	std::cout << tag << std::endl;
-	if (tag == 0) {
-		std::cout << "TAG == 0" << std::endl;
-	}
-	UnitInformation(Observation()->GetUnit(tag), *(IDAReplayObserver *)this);
-	std::cout << "OK" << std::endl;
-	return UnitInformation(Observation()->GetUnit(tag), *(IDAReplayObserver *)this);
+	return ReplayUnit(Observation()->GetUnit(tag), *(IDAReplayObserver *)this);
 }
 
 
@@ -59,7 +51,7 @@ UnitInformation IDAReplayObserver::GetUnit(const CCUnitID tag) const
 
 
 
-const std::vector<UnitInformation>& IDAReplayObserver::GetAllUnits() const
+const std::vector<ReplayUnit>& IDAReplayObserver::GetAllUnits() const
 {
 
 	return m_allUnits;
diff --git a/src/IDAReplayObserver.h b/src/IDAReplayObserver.h
index 16eaae6e52205295d850b1850085bb7375e89748..b23393a2ef8b4e94e9e98e6c8f02b36fd90fd443 100644
--- a/src/IDAReplayObserver.h
+++ b/src/IDAReplayObserver.h
@@ -4,33 +4,27 @@
 #include <limits>
 
 #include "Common.h"
-#include "UnitInformation.h"
+#include "ReplayUnit.h"
 
-class UnitInformation;
+class ReplayUnit;
 
 class IDAReplayObserver : public sc2::ReplayObserver
 {
-
-	
-
 	void setUnits();
-	std::vector<UnitInformation>       m_allUnits;
+	std::vector<ReplayUnit>       m_allUnits;
 
 public:
 	IDAReplayObserver();
-
 	
-
 	void OnGameStart() override;
 	void OnStep() override;
 	void OnGameEnd() override;
 	void OnUnitDestroyed(const sc2::Unit*) override;
-	virtual void OnUnitInfomationDestroyed(const UnitInformation*);
-
-	UnitInformation GetUnit(const CCUnitID tag) const;
+	void OnUnitInfomationDestroyed(const ReplayUnit*);
 
+	ReplayUnit GetUnit(const CCUnitID tag) const;
 
-	const std::vector<UnitInformation> & GetAllUnits() const;
+	const std::vector<ReplayUnit> & GetAllUnits() const;
 
 };
 
diff --git a/src/UnitInformation.cpp b/src/ReplayUnit.cpp
similarity index 81%
rename from src/UnitInformation.cpp
rename to src/ReplayUnit.cpp
index a33b23f2433097a55bbd51a465f1eeff1660c168..1bab9381607394099b2d292bc4c6281db9da854f 100644
--- a/src/UnitInformation.cpp
+++ b/src/ReplayUnit.cpp
@@ -1,25 +1,25 @@
-#include "UnitInformation.h"
+#include "ReplayUnit.h"
 
 
 
-UnitInformation::UnitInformation(const sc2::Unit * unit, IDAReplayObserver & replayObserver)
+ReplayUnit::ReplayUnit(const sc2::Unit * unit, IDAReplayObserver & replayObserver)
 	: m_replayObserver(&replayObserver), Unit(unit)
 {
 	
 }
 
- std::string UnitInformation::getType() const
+ std::string ReplayUnit::getType() const
 {
 	 return m_unit->unit_type.to_string();
 		
 }
 
- std::string UnitInformation::getTypeName() const
+ std::string ReplayUnit::getTypeName() const
  {
 	 return sc2::UnitTypeToName(m_unit->unit_type);
  }
 
-bool UnitInformation::hasTarget() const
+bool ReplayUnit::hasTarget() const
 {
 	BOT_ASSERT(isValid(), "Unit is not valid");
 	std::cout << "HAS TARGET" << std::endl;
@@ -43,7 +43,7 @@ bool UnitInformation::hasTarget() const
 	return false;
 }
 
-UnitInformation UnitInformation::getTarget() const
+ReplayUnit ReplayUnit::getTarget() const
 {
 	BOT_ASSERT(isValid(), "Unit is not valid");
 
@@ -64,7 +64,7 @@ UnitInformation UnitInformation::getTarget() const
 		return m_replayObserver->GetUnit(t_id);
 	}
 
-	UnitInformation this_unit = UnitInformation(m_unit, *m_replayObserver);
+	ReplayUnit this_unit = ReplayUnit(m_unit, *m_replayObserver);
 	return this_unit;
 }
 
diff --git a/src/UnitInformation.h b/src/ReplayUnit.h
similarity index 55%
rename from src/UnitInformation.h
rename to src/ReplayUnit.h
index 8352c5ba43fdfc27503a851c984a922ef9c65135..171dfc6823739b7180ee2a07d119f9a2ed5788f2 100644
--- a/src/UnitInformation.h
+++ b/src/ReplayUnit.h
@@ -4,18 +4,17 @@
 
 class IDAReplayObserver;
 
-class UnitInformation: public Unit
+//! A Unit that have a replayobserver insted of an Agent, 
+class ReplayUnit: public Unit
 {
 	mutable IDAReplayObserver * m_replayObserver;
 
-
-
 public:
-		UnitInformation(const sc2::Unit * unit, IDAReplayObserver & replayObserver);
+		ReplayUnit(const sc2::Unit * unit, IDAReplayObserver & replayObserver);
 
 		std::string getType() const;
 		std::string getTypeName() const;
 		bool hasTarget() const;
-		UnitInformation getTarget() const;
+		ReplayUnit getTarget() const;
 
 };
\ No newline at end of file