diff --git a/Modules/DICOMReaderServices/files.cmake b/Modules/DICOMReaderServices/files.cmake
index c16bb0e0c0..a71695bdc3 100644
--- a/Modules/DICOMReaderServices/files.cmake
+++ b/Modules/DICOMReaderServices/files.cmake
@@ -1,7 +1,9 @@
 file(GLOB_RECURSE H_FILES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/include/*")
 
 set(CPP_FILES
+  mitkBaseDICOMReaderService.cpp
   mitkAutoSelectingDICOMReaderService.cpp
+  mitkClassicDICOMSeriesReaderService.cpp
   mitkDICOMReaderServicesActivator.cpp
   mitkDICOMFilesHelper.cpp
 )
diff --git a/Modules/DICOMReaderServices/include/mitkAutoSelectingDICOMReaderService.h b/Modules/DICOMReaderServices/include/mitkAutoSelectingDICOMReaderService.h
index 6b67339cc5..9604cf407c 100644
--- a/Modules/DICOMReaderServices/include/mitkAutoSelectingDICOMReaderService.h
+++ b/Modules/DICOMReaderServices/include/mitkAutoSelectingDICOMReaderService.h
@@ -1,43 +1,45 @@
 /*===================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center,
 Division of Medical and Biological Informatics.
 All rights reserved.
 
 This software is distributed WITHOUT ANY WARRANTY; without
 even the implied warranty of MERCHANTABILITY or FITNESS FOR
 A PARTICULAR PURPOSE.
 
 See LICENSE.txt or http://www.mitk.org for details.
 
 ===================================================================*/
 
 #ifndef MITKAUTOSELECTINGDICOMREADERSERVICE_H
 #define MITKAUTOSELECTINGDICOMREADERSERVICE_H
 
-#include <mitkAbstractFileReader.h>
+#include <mitkBaseDICOMReaderService.h>
 
 namespace mitk {
 
   /**
   Service wrapper that auto selects (using the mitk::DICOMFileReaderSelector) the best DICOMFileReader from
   the DICOMReader module.
   */
-class AutoSelectingDICOMReaderService : public AbstractFileReader
+class AutoSelectingDICOMReaderService : public BaseDICOMReaderService
 {
 public:
   AutoSelectingDICOMReaderService();
 
-  using AbstractFileReader::Read;
-  virtual std::vector<itk::SmartPointer<BaseData> > Read() override;
+protected:
+  /** Returns the reader instance that should be used. The descission may be based
+  * one the passed relevant file list.*/
+  virtual mitk::DICOMFileReader::Pointer GetReader(const mitk::StringList& relevantFiles) const override;
 
 private:
 
   virtual AutoSelectingDICOMReaderService* Clone() const override;
 };
 
 }
 
 #endif // MITKDICOMSERIESREADERSERVICE_H
diff --git a/Modules/DICOMReaderServices/include/mitkBaseDICOMReaderService.h b/Modules/DICOMReaderServices/include/mitkBaseDICOMReaderService.h
new file mode 100644
index 0000000000..f99a76d50e
--- /dev/null
+++ b/Modules/DICOMReaderServices/include/mitkBaseDICOMReaderService.h
@@ -0,0 +1,52 @@
+/*===================================================================
+
+The Medical Imaging Interaction Toolkit (MITK)
+
+Copyright (c) German Cancer Research Center,
+Division of Medical and Biological Informatics.
+All rights reserved.
+
+This software is distributed WITHOUT ANY WARRANTY; without
+even the implied warranty of MERCHANTABILITY or FITNESS FOR
+A PARTICULAR PURPOSE.
+
+See LICENSE.txt or http://www.mitk.org for details.
+
+===================================================================*/
+
+#ifndef MITKBASEDICOMREADERSERVICE_H
+#define MITKBASEDICOMREADERSERVICE_H
+
+#include <mitkAbstractFileReader.h>
+#include <mitkDICOMFileReader.h>
+
+namespace mitk {
+
+  /**
+  Base class for service wrappers that make DICOMFileReader from
+  the DICOMReader module usable.
+  */
+class BaseDICOMReaderService : public AbstractFileReader
+{
+public:
+  BaseDICOMReaderService(const std::string& description);
+
+  using AbstractFileReader::Read;
+
+  /** Uses this->GetRelevantFile() and this->GetReader to load the image.
+   * data and puts it into base data instances-*/
+  virtual std::vector<itk::SmartPointer<BaseData> > Read() override;
+
+protected:
+  /** Returns the list of all DCM files that are in the same directory
+   * like this->GetLocalFileName().*/
+  mitk::StringList GetRelevantFiles() const;
+
+  /** Returns the reader instance that should be used. The descission may be based
+   * one the passed relevant file list.*/
+  virtual mitk::DICOMFileReader::Pointer GetReader(const mitk::StringList& relevantFiles) const = 0;
+};
+
+}
+
+#endif // MITKBASEDICOMREADERSERVICE_H
diff --git a/Modules/DICOMReaderServices/include/mitkAutoSelectingDICOMReaderService.h b/Modules/DICOMReaderServices/include/mitkClassicDICOMSeriesReaderService.h
similarity index 54%
copy from Modules/DICOMReaderServices/include/mitkAutoSelectingDICOMReaderService.h
copy to Modules/DICOMReaderServices/include/mitkClassicDICOMSeriesReaderService.h
index 6b67339cc5..aabc3a73ac 100644
--- a/Modules/DICOMReaderServices/include/mitkAutoSelectingDICOMReaderService.h
+++ b/Modules/DICOMReaderServices/include/mitkClassicDICOMSeriesReaderService.h
@@ -1,43 +1,45 @@
 /*===================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center,
 Division of Medical and Biological Informatics.
 All rights reserved.
 
 This software is distributed WITHOUT ANY WARRANTY; without
 even the implied warranty of MERCHANTABILITY or FITNESS FOR
 A PARTICULAR PURPOSE.
 
 See LICENSE.txt or http://www.mitk.org for details.
 
 ===================================================================*/
 
-#ifndef MITKAUTOSELECTINGDICOMREADERSERVICE_H
-#define MITKAUTOSELECTINGDICOMREADERSERVICE_H
+#ifndef MITKCLASSICDICOMSERIESREADERSERVICE_H
+#define MITKCLASSICDICOMSERIESREADERSERVICE_H
 
-#include <mitkAbstractFileReader.h>
+#include <mitkBaseDICOMReaderService.h>
 
 namespace mitk {
 
   /**
   Service wrapper that auto selects (using the mitk::DICOMFileReaderSelector) the best DICOMFileReader from
   the DICOMReader module.
   */
-class AutoSelectingDICOMReaderService : public AbstractFileReader
+class ClassicDICOMSeriesReaderService : public BaseDICOMReaderService
 {
 public:
-  AutoSelectingDICOMReaderService();
+  ClassicDICOMSeriesReaderService();
 
-  using AbstractFileReader::Read;
-  virtual std::vector<itk::SmartPointer<BaseData> > Read() override;
+protected:
+  /** Returns the reader instance that should be used. The descission may be based
+  * one the passed relevant file list.*/
+  virtual mitk::DICOMFileReader::Pointer GetReader(const mitk::StringList& relevantFiles) const override;
 
 private:
+  virtual ClassicDICOMSeriesReaderService* Clone() const override;
 
-  virtual AutoSelectingDICOMReaderService* Clone() const override;
 };
 
 }
 
-#endif // MITKDICOMSERIESREADERSERVICE_H
+#endif // MITKCLASSICDICOMSERIESREADERSERVICE_H
diff --git a/Modules/DICOMReaderServices/src/mitkAutoSelectingDICOMReaderService.cpp b/Modules/DICOMReaderServices/src/mitkAutoSelectingDICOMReaderService.cpp
index 299656c432..fd3a88ccb6 100644
--- a/Modules/DICOMReaderServices/src/mitkAutoSelectingDICOMReaderService.cpp
+++ b/Modules/DICOMReaderServices/src/mitkAutoSelectingDICOMReaderService.cpp
@@ -1,92 +1,46 @@
 /*===================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center,
 Division of Medical and Biological Informatics.
 All rights reserved.
 
 This software is distributed WITHOUT ANY WARRANTY; without
 even the implied warranty of MERCHANTABILITY or FITNESS FOR
 A PARTICULAR PURPOSE.
 
 See LICENSE.txt or http://www.mitk.org for details.
 
 ===================================================================*/
 
 #include "mitkAutoSelectingDICOMReaderService.h"
 
-#include <mitkCustomMimeType.h>
-#include <mitkIOMimeTypes.h>
 #include <mitkDICOMFileReaderSelector.h>
-#include <mitkImage.h>
-#include <mitkDICOMFilesHelper.h>
-
-#include <iostream>
 
 namespace mitk {
 
 AutoSelectingDICOMReaderService::AutoSelectingDICOMReaderService()
-  : AbstractFileReader(CustomMimeType(IOMimeTypes::DICOM_MIMETYPE()), "MITK DICOM Reader (auto)")
+  : BaseDICOMReaderService("MITK DICOM Reader (auto)")
 {
   this->RegisterService();
 }
 
-std::vector<itk::SmartPointer<BaseData> > AutoSelectingDICOMReaderService::Read()
+DICOMFileReader::Pointer AutoSelectingDICOMReaderService::GetReader(const mitk::StringList& relevantFiles) const
 {
-  std::vector<BaseData::Pointer> result;
-  std::string fileName = this->GetLocalFileName();
-
-  mitk::StringList relevantFiles = mitk::GetDICOMFilesInSameDirectory(fileName);
-
   mitk::DICOMFileReaderSelector::Pointer selector = mitk::DICOMFileReaderSelector::New();
 
   selector->LoadBuiltIn3DConfigs();
   selector->LoadBuiltIn3DnTConfigs();
   selector->SetInputFiles(relevantFiles);
 
   mitk::DICOMFileReader::Pointer reader = selector->GetFirstReaderWithMinimumNumberOfOutputImages();
-
-  reader->SetInputFiles(relevantFiles);
-  reader->AnalyzeInputFiles();
-  reader->LoadImages();
-
-  for (unsigned int i = 0; i < reader->GetNumberOfOutputs(); ++i)
-  {
-    const mitk::DICOMImageBlockDescriptor& desc = reader->GetOutput(i);
-    mitk::BaseData::Pointer data = desc.GetMitkImage();
-
-    std::string nodeName = "Unnamed_DICOM";
-
-    std::string studyDescription = desc.GetPropertyAsString("studyDescription");
-    std::string seriesDescription = desc.GetPropertyAsString("seriesDescription");
-
-    if (!studyDescription.empty())
-    {
-      nodeName = studyDescription;
-    }
-
-    if (!seriesDescription.empty())
-    {
-      if (!studyDescription.empty())
-      {
-        nodeName += "/";
-      }
-      nodeName += seriesDescription;
-    }
-
-    StringProperty::Pointer nameProp = StringProperty::New(nodeName);
-    data->SetProperty("name", nameProp);
-
-    result.push_back(data);
-  }
-
-  return result;
-}
+  return reader;
+};
 
 AutoSelectingDICOMReaderService* AutoSelectingDICOMReaderService::Clone() const
 {
   return new AutoSelectingDICOMReaderService(*this);
 }
 
 }
diff --git a/Modules/DICOMReaderServices/src/mitkAutoSelectingDICOMReaderService.cpp b/Modules/DICOMReaderServices/src/mitkBaseDICOMReaderService.cpp
similarity index 70%
copy from Modules/DICOMReaderServices/src/mitkAutoSelectingDICOMReaderService.cpp
copy to Modules/DICOMReaderServices/src/mitkBaseDICOMReaderService.cpp
index 299656c432..8ed3f0267e 100644
--- a/Modules/DICOMReaderServices/src/mitkAutoSelectingDICOMReaderService.cpp
+++ b/Modules/DICOMReaderServices/src/mitkBaseDICOMReaderService.cpp
@@ -1,92 +1,88 @@
 /*===================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center,
 Division of Medical and Biological Informatics.
 All rights reserved.
 
 This software is distributed WITHOUT ANY WARRANTY; without
 even the implied warranty of MERCHANTABILITY or FITNESS FOR
 A PARTICULAR PURPOSE.
 
 See LICENSE.txt or http://www.mitk.org for details.
 
 ===================================================================*/
 
-#include "mitkAutoSelectingDICOMReaderService.h"
+#include "mitkBaseDICOMReaderService.h"
 
 #include <mitkCustomMimeType.h>
 #include <mitkIOMimeTypes.h>
 #include <mitkDICOMFileReaderSelector.h>
 #include <mitkImage.h>
 #include <mitkDICOMFilesHelper.h>
 
 #include <iostream>
 
 namespace mitk {
 
-AutoSelectingDICOMReaderService::AutoSelectingDICOMReaderService()
-  : AbstractFileReader(CustomMimeType(IOMimeTypes::DICOM_MIMETYPE()), "MITK DICOM Reader (auto)")
+  BaseDICOMReaderService::BaseDICOMReaderService(const std::string& description)
+    : AbstractFileReader(CustomMimeType(IOMimeTypes::DICOM_MIMETYPE()), description)
 {
-  this->RegisterService();
 }
 
-std::vector<itk::SmartPointer<BaseData> > AutoSelectingDICOMReaderService::Read()
+std::vector<itk::SmartPointer<BaseData> > BaseDICOMReaderService::Read()
 {
   std::vector<BaseData::Pointer> result;
-  std::string fileName = this->GetLocalFileName();
-
-  mitk::StringList relevantFiles = mitk::GetDICOMFilesInSameDirectory(fileName);
-
-  mitk::DICOMFileReaderSelector::Pointer selector = mitk::DICOMFileReaderSelector::New();
-
-  selector->LoadBuiltIn3DConfigs();
-  selector->LoadBuiltIn3DnTConfigs();
-  selector->SetInputFiles(relevantFiles);
+  mitk::StringList relevantFiles = this->GetRelevantFiles();
 
-  mitk::DICOMFileReader::Pointer reader = selector->GetFirstReaderWithMinimumNumberOfOutputImages();
+  mitk::DICOMFileReader::Pointer reader = this->GetReader(relevantFiles);
 
   reader->SetInputFiles(relevantFiles);
   reader->AnalyzeInputFiles();
   reader->LoadImages();
 
   for (unsigned int i = 0; i < reader->GetNumberOfOutputs(); ++i)
   {
     const mitk::DICOMImageBlockDescriptor& desc = reader->GetOutput(i);
     mitk::BaseData::Pointer data = desc.GetMitkImage();
 
     std::string nodeName = "Unnamed_DICOM";
 
     std::string studyDescription = desc.GetPropertyAsString("studyDescription");
     std::string seriesDescription = desc.GetPropertyAsString("seriesDescription");
 
     if (!studyDescription.empty())
     {
       nodeName = studyDescription;
     }
 
     if (!seriesDescription.empty())
     {
       if (!studyDescription.empty())
       {
         nodeName += "/";
       }
       nodeName += seriesDescription;
     }
 
     StringProperty::Pointer nameProp = StringProperty::New(nodeName);
     data->SetProperty("name", nameProp);
 
     result.push_back(data);
   }
 
   return result;
 }
 
-AutoSelectingDICOMReaderService* AutoSelectingDICOMReaderService::Clone() const
+StringList BaseDICOMReaderService::GetRelevantFiles() const
 {
-  return new AutoSelectingDICOMReaderService(*this);
+  std::string fileName = this->GetLocalFileName();
+
+  mitk::StringList relevantFiles = mitk::GetDICOMFilesInSameDirectory(fileName);
+
+  return relevantFiles;
 }
 
+
 }
diff --git a/Modules/DICOMReaderServices/src/mitkClassicDICOMSeriesReaderService.cpp b/Modules/DICOMReaderServices/src/mitkClassicDICOMSeriesReaderService.cpp
new file mode 100644
index 0000000000..b99e609ec3
--- /dev/null
+++ b/Modules/DICOMReaderServices/src/mitkClassicDICOMSeriesReaderService.cpp
@@ -0,0 +1,41 @@
+/*===================================================================
+
+The Medical Imaging Interaction Toolkit (MITK)
+
+Copyright (c) German Cancer Research Center,
+Division of Medical and Biological Informatics.
+All rights reserved.
+
+This software is distributed WITHOUT ANY WARRANTY; without
+even the implied warranty of MERCHANTABILITY or FITNESS FOR
+A PARTICULAR PURPOSE.
+
+See LICENSE.txt or http://www.mitk.org for details.
+
+===================================================================*/
+
+#include "mitkClassicDICOMSeriesReaderService.h"
+
+#include <mitkClassicDICOMSeriesReader.h>
+
+namespace mitk {
+
+  ClassicDICOMSeriesReaderService::ClassicDICOMSeriesReaderService()
+  : BaseDICOMReaderService("MITK DICOM Reader(2013 classic style)")
+{
+  this->RegisterService();
+}
+
+  DICOMFileReader::Pointer ClassicDICOMSeriesReaderService::GetReader(const mitk::StringList& relevantFiles) const
+{
+  mitk::ClassicDICOMSeriesReader::Pointer reader = mitk::ClassicDICOMSeriesReader::New();
+  return reader.GetPointer();
+};
+
+
+  ClassicDICOMSeriesReaderService* ClassicDICOMSeriesReaderService::Clone() const
+  {
+    return new ClassicDICOMSeriesReaderService(*this);
+  }
+
+}
diff --git a/Modules/DICOMReaderServices/src/mitkDICOMReaderServicesActivator.cpp b/Modules/DICOMReaderServices/src/mitkDICOMReaderServicesActivator.cpp
index 4ad13a18f9..14c76fc2b4 100644
--- a/Modules/DICOMReaderServices/src/mitkDICOMReaderServicesActivator.cpp
+++ b/Modules/DICOMReaderServices/src/mitkDICOMReaderServicesActivator.cpp
@@ -1,34 +1,36 @@
 /*===================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center,
 Division of Medical and Biological Informatics.
 All rights reserved.
 
 This software is distributed WITHOUT ANY WARRANTY; without
 even the implied warranty of MERCHANTABILITY or FITNESS FOR
 A PARTICULAR PURPOSE.
 
 See LICENSE.txt or http://www.mitk.org for details.
 
 ===================================================================*/
 
 #include "mitkDICOMReaderServicesActivator.h"
 
 #include "mitkAutoSelectingDICOMReaderService.h"
+#include "mitkClassicDICOMSeriesReaderService.h"
 
 namespace mitk {
 
   void DICOMReaderServicesActivator::Load(us::ModuleContext*)
   {
     m_AutoSelectingDICOMReader.reset(new AutoSelectingDICOMReaderService());
+    m_ClassicDICOMSeriesReader.reset(new ClassicDICOMSeriesReaderService());
   }
 
   void DICOMReaderServicesActivator::Unload(us::ModuleContext*)
   {
   }
 
 }
 
 US_EXPORT_MODULE_ACTIVATOR(mitk::DICOMReaderServicesActivator)
diff --git a/Modules/DICOMReaderServices/src/mitkDICOMReaderServicesActivator.h b/Modules/DICOMReaderServices/src/mitkDICOMReaderServicesActivator.h
index c93d3bdbae..c128e96451 100644
--- a/Modules/DICOMReaderServices/src/mitkDICOMReaderServicesActivator.h
+++ b/Modules/DICOMReaderServices/src/mitkDICOMReaderServicesActivator.h
@@ -1,42 +1,43 @@
 /*===================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center,
 Division of Medical and Biological Informatics.
 All rights reserved.
 
 This software is distributed WITHOUT ANY WARRANTY; without
 even the implied warranty of MERCHANTABILITY or FITNESS FOR
 A PARTICULAR PURPOSE.
 
 See LICENSE.txt or http://www.mitk.org for details.
 
 ===================================================================*/
 
 #ifndef MITKDICOMREADERSERVICESACTIVATOR_H
 #define MITKDICOMREADERSERVICESACTIVATOR_H
 
 #include <usModuleActivator.h>
 
 #include <memory>
 
 namespace mitk {
 
 struct IFileReader;
 
 class DICOMReaderServicesActivator : public us::ModuleActivator
 {
 public:
 
   void Load(us::ModuleContext*context) override;
   void Unload(us::ModuleContext* context) override;
 
 private:
 
   std::unique_ptr<IFileReader> m_AutoSelectingDICOMReader;
+  std::unique_ptr<IFileReader> m_ClassicDICOMSeriesReader;
 };
 
 }
 
 #endif // MITKDICOMREADERSERVICESACTIVATOR_H