diff --git a/source/anim/DynamicModelProvider.cpp b/source/anim/DynamicModelProvider.cpp
index 7e85e07760c6fd57f1913dd9b0efec8803d830c0..e83f4bf877a2474cf1952e4ceee882099377499f 100644
--- a/source/anim/DynamicModelProvider.cpp
+++ b/source/anim/DynamicModelProvider.cpp
@@ -353,8 +353,8 @@ void CDynamicModelProvider::computeVisibility(const IFrustum *pFrustum, CRendera
 	pVisibility->resetItemTransparentDynamic();
 #if 1
 	CVisUpdate cycle(pFrustum, pVisibility, pReference, m_apModels);
-	ID id = m_pCore->getAsyncTaskRunner()->forLoop(0, m_apModels.size(), &cycle, 500);
-	m_pCore->getAsyncTaskRunner()->waitForLoop(id);
+	ID id = m_pCore->forLoop(0, m_apModels.size(), &cycle, 500);
+	m_pCore->waitForLoop(id);
 #else
 	CDynamicModel *pMdl;
 	for(UINT i = 0, l = m_apModels.size(); i < l; ++i)
diff --git a/source/core/AsyncTaskRunner.cpp b/source/core/AsyncTaskRunner.cpp
index 8c407ce60a3d413093b379795eb7fc3c8df83504..56d116c4464d3d73381b808ae38e2f3adaf8afa0 100644
--- a/source/core/AsyncTaskRunner.cpp
+++ b/source/core/AsyncTaskRunner.cpp
@@ -154,12 +154,3 @@ void XMETHODCALLTYPE CAsyncTaskRunner::runCallbacks()
 		g_pTaskManager->addTask(m_vpQueue[0]);
 	}
 }
-
-ID XMETHODCALLTYPE CAsyncTaskRunner::forLoop(int iStart, int iEnd, const IParallelForBody *pBody, int iMaxChunkSize)
-{
-	return(g_pTaskManager->forLoop(iStart, iEnd, pBody, iMaxChunkSize));
-}
-void XMETHODCALLTYPE CAsyncTaskRunner::waitForLoop(ID id)
-{
-	g_pTaskManager->waitFor(id);
-}
diff --git a/source/core/AsyncTaskRunner.h b/source/core/AsyncTaskRunner.h
index 9d2a2ea298df20f106ca82bda1ac282be2218486..8b5275246f7894d893ab46339a67c5890d0d8e81 100644
--- a/source/core/AsyncTaskRunner.h
+++ b/source/core/AsyncTaskRunner.h
@@ -15,9 +15,6 @@ public:
 	void XMETHODCALLTYPE runTask(IAsyncTask *pTask) override;
 	void XMETHODCALLTYPE runCallbacks() override;
 
-	ID XMETHODCALLTYPE forLoop(int iStart, int iEnd, const IParallelForBody *pBody, int iMaxChunkSize = 0) override;
-	void XMETHODCALLTYPE waitForLoop(ID id) override;
-
 protected:
 	IXCore *m_pCore;
 
diff --git a/source/core/Core.cpp b/source/core/Core.cpp
index 873c88080f7c0b43035ce50cdf3f42ed8c0e88e8..00b3ed8f9e5d835ea5e643a62773c200b2799ca8 100644
--- a/source/core/Core.cpp
+++ b/source/core/Core.cpp
@@ -205,11 +205,11 @@ IXResourceManager* XMETHODCALLTYPE CCore::getResourceManager()
 	return(m_pResourceManager);
 }
 
-IAsyncFileReader* XMETHODCALLTYPE CCore::getAsyncFileReader()
+IAsyncFileReader* XMETHODCALLTYPE CCore::newAsyncFileReader()
 {
 	return(new CAsyncFileReader(this));
 }
-IAsyncTaskRunner* XMETHODCALLTYPE CCore::getAsyncTaskRunner()
+IAsyncTaskRunner* XMETHODCALLTYPE CCore::newAsyncTaskRunner()
 {
 	return(new CAsyncTaskRunner(this));
 }
@@ -450,6 +450,15 @@ const bool* XMETHODCALLTYPE CCore::getPCVarBool(const char *szName)
 	return(GET_PCVAR_BOOL(szName));
 }
 
+ID XMETHODCALLTYPE CCore::forLoop(int iStart, int iEnd, const IParallelForBody *pBody, int iMaxChunkSize)
+{
+	return(g_pTaskManager->forLoop(iStart, iEnd, pBody, iMaxChunkSize));
+}
+void XMETHODCALLTYPE CCore::waitForLoop(ID id)
+{
+	g_pTaskManager->waitFor(id);
+}
+
 //##########################################################################
 
 C SXCORE_API IXCore* XCoreInit(const char *szName)
diff --git a/source/core/Core.h b/source/core/Core.h
index c2e44f4db40256dca7b2bda0771437ada6111ac7..3f00fe8f0c0d0ba7a4c5001f977f1896d5db9981 100644
--- a/source/core/Core.h
+++ b/source/core/Core.h
@@ -23,8 +23,8 @@ public:
 	IFileSystem* XMETHODCALLTYPE getFileSystem() override;
 	IXResourceManager* XMETHODCALLTYPE getResourceManager() override;
 
-	IAsyncFileReader* XMETHODCALLTYPE getAsyncFileReader() override;
-	IAsyncTaskRunner* XMETHODCALLTYPE getAsyncTaskRunner() override;
+	IAsyncFileReader* XMETHODCALLTYPE newAsyncFileReader() override;
+	IAsyncTaskRunner* XMETHODCALLTYPE newAsyncTaskRunner() override;
 
 	void XMETHODCALLTYPE getRenderPipeline(IXRenderPipeline **ppRenderPipeline) override;
 	void XMETHODCALLTYPE setRenderPipeline(IXRenderPipeline *pRenderPipeline) override;
@@ -50,6 +50,9 @@ public:
 	const float* XMETHODCALLTYPE getPCVarFloat(const char *szName) override;
 	const bool* XMETHODCALLTYPE getPCVarBool(const char *szName) override;
 
+	ID XMETHODCALLTYPE forLoop(int iStart, int iEnd, const IParallelForBody *pBody, int iMaxChunkSize = 0) override;
+	void XMETHODCALLTYPE waitForLoop(ID id) override;
+
 protected:
 	IBaseEventChannel* getEventChannelInternal(const XGUID &guid) override;
 
diff --git a/source/game/GameData.cpp b/source/game/GameData.cpp
index 54a1292b7aeef0536c57104c22f9b9f6a72e7c36..ecd362f7a648083e5de6143769f3418611b00133 100644
--- a/source/game/GameData.cpp
+++ b/source/game/GameData.cpp
@@ -449,7 +449,7 @@ GameData::GameData(HWND hWnd, bool isGame):
 		pSun->setDirection(SMQuaternion(LIGHTS_DIR_BASE, float3(1.0f, -1.0f, 1.0f)));
 	}
 
-	g_pAsyncTaskRunner = Core_GetIXCore()->getAsyncTaskRunner();
+	g_pAsyncTaskRunner = Core_GetIXCore()->newAsyncTaskRunner();
 
 	Core_0RegisterConcmd("+forward", ccmd_forward_on);
 	Core_0RegisterConcmd("-forward", ccmd_forward_off);
diff --git a/source/xEngine/Engine.cpp b/source/xEngine/Engine.cpp
index 8ac1a687d138d033f58330c8adafddf2f67642af..1277e7c9e84b33ee20c2587af44e63e4d0ca9303 100644
--- a/source/xEngine/Engine.cpp
+++ b/source/xEngine/Engine.cpp
@@ -239,7 +239,6 @@ bool CEngine::runFrame()
 
 	SSInput_Update();
 	
-	
 	// draw frame
 	{
 		static IGXDevice *pRenderContext = SGCore_GetDXDevice();
diff --git a/source/xcommon/IAsyncTaskRunner.h b/source/xcommon/IAsyncTaskRunner.h
index b98b32220eb5cff5300cfb51cd7c82f33a226b89..54718fb27fb0e8ba706bbc8509947a7542f22484 100644
--- a/source/xcommon/IAsyncTaskRunner.h
+++ b/source/xcommon/IAsyncTaskRunner.h
@@ -34,9 +34,6 @@ class IAsyncTaskRunner: public IXUnknown
 public:
 	virtual void XMETHODCALLTYPE runTask(IAsyncTask *pTask) = 0;
 	virtual void XMETHODCALLTYPE runCallbacks() = 0;
-
-	virtual ID XMETHODCALLTYPE forLoop(int iStart, int iEnd, const IParallelForBody *pBody, int iMaxChunkSize = 0) = 0;
-	virtual void XMETHODCALLTYPE waitForLoop(ID id) = 0;
 };
 
 #endif
diff --git a/source/xcommon/IXCore.h b/source/xcommon/IXCore.h
index 113aac443196e133a4dee76e3824d55237ce6a4c..935df0d187c432dd5fcb3d21c334e038a301c51e 100644
--- a/source/xcommon/IXCore.h
+++ b/source/xcommon/IXCore.h
@@ -22,8 +22,8 @@ public:
 	virtual IFileSystem* XMETHODCALLTYPE getFileSystem() = 0;
 	virtual IXResourceManager* XMETHODCALLTYPE getResourceManager() = 0;
 
-	virtual IAsyncFileReader* XMETHODCALLTYPE getAsyncFileReader() = 0;
-	virtual IAsyncTaskRunner* XMETHODCALLTYPE getAsyncTaskRunner() = 0;
+	virtual IAsyncFileReader* XMETHODCALLTYPE newAsyncFileReader() = 0;
+	virtual IAsyncTaskRunner* XMETHODCALLTYPE newAsyncTaskRunner() = 0;
 
 	virtual void XMETHODCALLTYPE getRenderPipeline(IXRenderPipeline **ppRenderPipeline) = 0;
 	virtual void XMETHODCALLTYPE setRenderPipeline(IXRenderPipeline *pRenderPipeline) = 0;
@@ -47,6 +47,9 @@ public:
 	virtual const float* XMETHODCALLTYPE getPCVarFloat(const char *szName) = 0;
 	virtual const bool* XMETHODCALLTYPE getPCVarBool(const char *szName) = 0;
 
+	virtual ID XMETHODCALLTYPE forLoop(int iStart, int iEnd, const IParallelForBody *pBody, int iMaxChunkSize = 0) = 0;
+	virtual void XMETHODCALLTYPE waitForLoop(ID id) = 0;
+
 	template<typename T> IEventChannel<T> *getEventChannel(const XGUID &guid)
 	{
 		return((IEventChannel<T>*)getEventChannelInternal(guid));