diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 04fd31da5..3cd2ddd5c 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -37,9 +37,7 @@ ENDIF()
 SET( tomahawkSources ${tomahawkSources}
      web/Api_v1.cpp
 
-     MusicScanner.cpp
      ShortcutHandler.cpp
-     ScanManager.cpp
      UbuntuUnityHack.cpp
      TomahawkApp.cpp
      main.cpp
diff --git a/src/SettingsDialog.cpp b/src/SettingsDialog.cpp
index 6d416ce81..213373ea0 100644
--- a/src/SettingsDialog.cpp
+++ b/src/SettingsDialog.cpp
@@ -34,13 +34,11 @@
 #include "TomahawkApp.h"
 #include "TomahawkSettings.h"
 #include "accounts/DelegateConfigWrapper.h"
-#include "MusicScanner.h"
 #include "Pipeline.h"
 #include "Resolver.h"
 #include "ExternalResolverGui.h"
 #include "utils/TomahawkUtilsGui.h"
 #include "utils/GuiHelpers.h"
-#include "ScanManager.h"
 #include "SettingsListDelegate.h"
 #include "accounts/AccountDelegate.h"
 #include "database/Database.h"
diff --git a/src/TomahawkApp.cpp b/src/TomahawkApp.cpp
index 70377bc14..6b73a930b 100644
--- a/src/TomahawkApp.cpp
+++ b/src/TomahawkApp.cpp
@@ -50,11 +50,10 @@
 #include "web/Api_v1.h"
 #include "SourceList.h"
 #include "ShortcutHandler.h"
-#include "ScanManager.h"
+#include "libtomahawk/filemetadata/ScanManager.h"
 #include "TomahawkSettings.h"
 #include "GlobalActionManager.h"
 #include "database/LocalCollection.h"
-#include "MusicScanner.h"
 #include "Pipeline.h"
 #include "DropJob.h"
 #include "EchonestCatalogSynchronizer.h"
diff --git a/src/TomahawkWindow.cpp b/src/TomahawkWindow.cpp
index 706080c76..d08772199 100644
--- a/src/TomahawkWindow.cpp
+++ b/src/TomahawkWindow.cpp
@@ -67,7 +67,7 @@
 #include "TomahawkSettings.h"
 #include "SourceList.h"
 #include "TomahawkTrayIcon.h"
-#include "ScanManager.h"
+#include "libtomahawk/filemetadata/ScanManager.h"
 #include "TomahawkApp.h"
 #include "LoadXSPFDialog.h"
 
diff --git a/src/libtomahawk/CMakeLists.txt b/src/libtomahawk/CMakeLists.txt
index 2c0e5433c..5dca902d8 100644
--- a/src/libtomahawk/CMakeLists.txt
+++ b/src/libtomahawk/CMakeLists.txt
@@ -261,6 +261,9 @@ set( libSources
     infosystem/InfoSystemCache.cpp
     infosystem/InfoSystemWorker.cpp
 
+    filemetadata/MusicScanner.cpp
+    filemetadata/ScanManager.cpp
+
     network/BufferIoDevice.cpp
     network/MsgProcessor.cpp
     network/StreamConnection.cpp
diff --git a/src/MusicScanner.cpp b/src/libtomahawk/filemetadata/MusicScanner.cpp
similarity index 100%
rename from src/MusicScanner.cpp
rename to src/libtomahawk/filemetadata/MusicScanner.cpp
diff --git a/src/MusicScanner.h b/src/libtomahawk/filemetadata/MusicScanner.h
similarity index 100%
rename from src/MusicScanner.h
rename to src/libtomahawk/filemetadata/MusicScanner.h
diff --git a/src/ScanManager.cpp b/src/libtomahawk/filemetadata/ScanManager.cpp
similarity index 100%
rename from src/ScanManager.cpp
rename to src/libtomahawk/filemetadata/ScanManager.cpp
diff --git a/src/ScanManager.h b/src/libtomahawk/filemetadata/ScanManager.h
similarity index 96%
rename from src/ScanManager.h
rename to src/libtomahawk/filemetadata/ScanManager.h
index 7abc581d6..41fe91352 100644
--- a/src/ScanManager.h
+++ b/src/libtomahawk/filemetadata/ScanManager.h
@@ -21,6 +21,7 @@
 #define SCANMANAGER_H
 
 #include "Typedefs.h"
+#include "DllMacro.h"
 
 #include <QtCore/QHash>
 #include <QtCore/QMap>
@@ -34,7 +35,7 @@ class QThread;
 class QFileSystemWatcher;
 class QTimer;
 
-class ScanManager : public QObject
+class DLLEXPORT ScanManager : public QObject
 {
 Q_OBJECT