diff --git a/src/core/identification_sources/identificationdatasource.cpp b/src/core/identification_sources/identificationdatasource.cpp
index d3ac590833ffbb0c432fb712a4021d235204edd7..afb025013b152689cc652e1a62f5914dcce810f9 100644
--- a/src/core/identification_sources/identificationdatasource.cpp
+++ b/src/core/identification_sources/identificationdatasource.cpp
@@ -44,9 +44,22 @@ bool IdentificationDataSource::operator==(const IdentificationDataSource& other)
 
 }
 
-IdentificationDataSourceSp IdentificationDataSource::getInstance(const QString & location) {
-    QFileInfo location_file(location);
-    QString ext = location_file.suffix();
+IdentificationDataSource * IdentificationDataSource::getInstance(const QString & location) {
+
+    std::map< QString, IdentificationDataSource* >::iterator it = _map_identification_data_sources.find(location);
+    if (it != _map_identification_data_sources.end()) {
+        return it->second;
+    }
+    else {
+        QFileInfo location_file(location);
+        QString ext = location_file.suffix();
+        QString sample_name = location_file.baseName();
+        if (ext.toLower() == "xml") {
+            //X!Tandem result file
+	  MsRunIdSp msrunid_sp = 
+
+        }
+    }
 }
 
 const QString & IdentificationDataSource::getResourceName () const {
diff --git a/src/core/identification_sources/identificationdatasource.h b/src/core/identification_sources/identificationdatasource.h
index d067a3cf61ec4641dffbb0bfdf79b927970bf008..928430919123a835cfc4891f6d790681992cc794 100644
--- a/src/core/identification_sources/identificationdatasource.h
+++ b/src/core/identification_sources/identificationdatasource.h
@@ -28,14 +28,10 @@
 #include <map>
 
 
-class IdentificationDataSource;
-
-typedef std::shared_ptr<IdentificationDataSource> IdentificationDataSourceSp;
-
 class IdentificationDataSource
 {
 public:
-    static IdentificationDataSourceSp getInstance(const QString & location);
+    static IdentificationDataSource * getInstance(const QString & location);
 
     IdentificationDataSource(pappso::MsRunIdSp & ms_run_sp);
     IdentificationDataSource(const IdentificationDataSource& other);