diff --git a/python-api-src/library.cpp b/python-api-src/library.cpp
index 29d5c965330768fc54193ac2ec1fc4378315a1bd..a7459c8a1f796febd73981912fb025dd861bd985 100644
--- a/python-api-src/library.cpp
+++ b/python-api-src/library.cpp
@@ -100,8 +100,18 @@ PYBIND11_MODULE(library, m)
 		.def("on_game_end", &IDAReplayObserver::OnGameEnd)
 		.def("get_all_units", &IDAReplayObserver::GetAllUnits, "Returns a list of all units")
 		.def("get_player_race", &IDAReplayObserver::GetPlayerRace,"player_id"_a)
+		.def("get_replay_path", &IDAReplayObserver::GetReplayPath)
+		.def("get_result_for_player", &IDAReplayObserver::GetResultForPlayer, "player_id"_a)
 		;
 
+	
+
+	py::enum_<sc2::GameResult>(m, "GameResult")
+		.value("Win", sc2::GameResult::Win)
+		.value("Loss", sc2::GameResult::Loss)
+		.value("Tie", sc2::GameResult::Tie)
+		.value("Undecided", sc2::GameResult::Undecided);
+
     py::class_<sc2::PlayerSetup>(m, "PlayerSetup");
 
     py::enum_<sc2::Difficulty>(m, "Difficulty")
diff --git a/src/IDAReplayObserver.cpp b/src/IDAReplayObserver.cpp
index 491818b304e4f7a34990d04f5047504fcd13db20..d2b5c61cf7f82dc73b896c4d39b8c2346186b963 100644
--- a/src/IDAReplayObserver.cpp
+++ b/src/IDAReplayObserver.cpp
@@ -57,19 +57,19 @@ const std::vector<ReplayUnit>& IDAReplayObserver::GetAllUnits() const
 	return m_allUnits;
 }
 
-CCRace IDAReplayObserver::GetPlayerRace(int player) const
+CCRace IDAReplayObserver::GetPlayerRace(int player)
+{	
+	return ReplayControl()->GetReplayInfo().players[player].race;
+}
+
+std::string IDAReplayObserver::GetReplayPath()
 {
-	auto playerID = Observation()->GetPlayerID();
-	for (auto & playerInfo : Observation()->GetGameInfo().player_info)
-	{
-		if (playerInfo.player_id == playerID)
-		{
-			return playerInfo.race_actual;
-		}
-	}
+	return ReplayControl()->GetReplayInfo().replay_path;
+}
 
-	BOT_ASSERT(false, "Failed to find the player's race!");
-	return sc2::Race::Random;
+sc2::GameResult IDAReplayObserver::GetResultForPlayer(int player)
+{
+	return ReplayControl()->GetReplayInfo().players[player].game_result;
 }
 
 
diff --git a/src/IDAReplayObserver.h b/src/IDAReplayObserver.h
index d340fb1affc2a83a1544fafe31b64e297377c5d1..8791b180eadac99eaabf63c7250eb95f77127d53 100644
--- a/src/IDAReplayObserver.h
+++ b/src/IDAReplayObserver.h
@@ -25,7 +25,9 @@ public:
 	ReplayUnit GetUnit(const CCUnitID tag) const;
 
 	const std::vector<ReplayUnit> & GetAllUnits() const;
-	CCRace GetPlayerRace(int player) const;
+	CCRace GetPlayerRace(int player);
+	std::string GetReplayPath();
+	sc2::GameResult GetResultForPlayer(int player);
 
 };