diff --git a/IO/NetCDF/vtk.module b/IO/NetCDF/vtk.module
index 447c89d1a8e257215b442e7b6618d35f2fcbb114..e0f78bb422a052c0007b9f65c73cb85acdc0bb3b 100644
--- a/IO/NetCDF/vtk.module
+++ b/IO/NetCDF/vtk.module
@@ -2,6 +2,7 @@ NAME
   VTK::IONetCDF
 LIBRARY_NAME
   vtkIONetCDF
+IMPLEMENTABLE
 KIT
   VTK::IO
 GROUPS
diff --git a/IO/NetCDF/vtkSLACReader.cxx b/IO/NetCDF/vtkSLACReader.cxx
index 34bf7d88b4de93aecdbc44bad5cb7fd9ee582370..bf307aeee1f6258be3fee8ee99fae2194709584c 100644
--- a/IO/NetCDF/vtkSLACReader.cxx
+++ b/IO/NetCDF/vtkSLACReader.cxx
@@ -447,7 +447,7 @@ bool vtkSLACReader::MidpointIdMap::GetNextMidpoint(EdgeEndpoints& edge, vtkIdTyp
 }
 
 //=============================================================================
-vtkStandardNewMacro(vtkSLACReader);
+vtkObjectFactoryNewMacro(vtkSLACReader);
 
 vtkInformationKeyMacro(vtkSLACReader, IS_INTERNAL_VOLUME, Integer);
 vtkInformationKeyMacro(vtkSLACReader, IS_EXTERNAL_SURFACE, Integer);
diff --git a/IO/Parallel/CMakeLists.txt b/IO/Parallel/CMakeLists.txt
index 56b07e6c606fa0e23243b565e8e15b6b48c73d76..fe622e4640dd51d00d335df38da599f11e4d241b 100644
--- a/IO/Parallel/CMakeLists.txt
+++ b/IO/Parallel/CMakeLists.txt
@@ -6,8 +6,7 @@ set(classes
   vtkPDataSetReader
   vtkPDataSetWriter
   vtkPImageWriter
-  vtkPOpenFOAMReader
-  vtkPSLACReader)
+  vtkPOpenFOAMReader)
 
 set(sources
   vtkMultiBlockPLOT3DReaderInternals.cxx)
diff --git a/IO/Parallel/Testing/CMakeLists.txt b/IO/Parallel/Testing/CMakeLists.txt
index 487d0a8dd8c6b9a096e3c569b0a3ba5eb5c18a7f..c5745f3f1490179bffa98d281ec76323dba995ac 100644
--- a/IO/Parallel/Testing/CMakeLists.txt
+++ b/IO/Parallel/Testing/CMakeLists.txt
@@ -16,12 +16,6 @@ vtk_module_test_data(
   Data/OpenFOAM/cavity/system/,REGEX:.*
   Data/bigendian.xyz)
 
-if (VTK_USE_LARGE_DATA)
-  vtk_module_test_data(
-    Data/SLAC/ll-9cell-f523/ll-9cell-f523.ncdf
-    Data/SLAC/ll-9cell-f523/mode0.l0.R2.457036E+09I2.778314E+04.m3)
-endif ()
-
 add_subdirectory(Cxx)
 
 if (VTK_WRAP_PYTHON)
diff --git a/IO/Parallel/Testing/Cxx/CMakeLists.txt b/IO/Parallel/Testing/Cxx/CMakeLists.txt
index 4a2060da1367c3590f0060d914ffc4e51d173ffa..fac8d6c57b3953f4b41e4405ba890f1fa3d6e480 100644
--- a/IO/Parallel/Testing/Cxx/CMakeLists.txt
+++ b/IO/Parallel/Testing/Cxx/CMakeLists.txt
@@ -3,12 +3,3 @@ vtk_add_test_cxx(vtkIOParallelCxxTests tests
   TestBigEndianPlot3D.cxx,NO_VALID
   )
 vtk_test_cxx_executable(vtkIOParallelCxxTests tests)
-
-if(VTK_USE_LARGE_DATA AND TARGET VTK::ParallelMPI)
-  vtk_add_test_mpi(vtkIOParallelCxxTests-MPI tests
-    TESTING_DATA
-    PSLACReaderLinear.cxx
-    PSLACReaderQuadratic.cxx
-    )
-  vtk_test_cxx_executable(vtkIOParallelCxxTests-MPI tests)
-endif()
diff --git a/IO/Parallel/vtk.module b/IO/Parallel/vtk.module
index 53d12714aedac5a19c84dcb913ac3e8b75951625..3b02574802383ea028314b19bad7a442cc24ed08 100644
--- a/IO/Parallel/vtk.module
+++ b/IO/Parallel/vtk.module
@@ -15,7 +15,6 @@ DEPENDS
   VTK::IOGeometry
   VTK::IOImage
   VTK::IOLegacy
-  VTK::IONetCDF
   VTK::jsoncpp
 PRIVATE_DEPENDS
   VTK::CommonMisc
@@ -24,8 +23,6 @@ PRIVATE_DEPENDS
   VTK::FiltersExtraction
   VTK::FiltersParallel
   VTK::ParallelCore
-  VTK::exodusII
-  VTK::netcdf
   VTK::vtksys
 TEST_DEPENDS
   VTK::FiltersGeometry
diff --git a/IO/ParallelNetCDF/CMakeLists.txt b/IO/ParallelNetCDF/CMakeLists.txt
index 90af6f64d68ce4c96f77a15bdb8d1ca7d5b809dc..99557a130ea3dea7035f8918647739f9d378f13e 100644
--- a/IO/ParallelNetCDF/CMakeLists.txt
+++ b/IO/ParallelNetCDF/CMakeLists.txt
@@ -1,5 +1,17 @@
 set(classes
-  vtkPNetCDFPOPReader)
+  vtkPNetCDFPOPReader
+  vtkPSLACReader)
+
+vtk_object_factory_declare(
+  BASE      vtkSLACReader
+  OVERRIDE  vtkPSLACReader)
+
+vtk_object_factory_configure(
+  SOURCE_FILE vtk_object_factory_source
+  HEADER_FILE vtk_object_factory_header
+  EXPORT_MACRO "VTKIOPARALLELNETCDF_EXPORT")
 
 vtk_module_add_module(VTK::IOParallelNetCDF
-  CLASSES ${classes})
+  CLASSES ${classes}
+  SOURCES ${vtk_object_factory_source}
+  PRIVATE_HEADERS ${vtk_object_factory_header})
diff --git a/IO/ParallelNetCDF/Testing/CMakeLists.txt b/IO/ParallelNetCDF/Testing/CMakeLists.txt
index a7fd7b1662a9e71dfa6f91f866c58170d37b34b2..9a3476008bde6e21bdb55cbff01d0705f6b7a19e 100644
--- a/IO/ParallelNetCDF/Testing/CMakeLists.txt
+++ b/IO/ParallelNetCDF/Testing/CMakeLists.txt
@@ -1,6 +1,7 @@
 if (VTK_USE_LARGE_DATA)
   vtk_module_test_data(
-    Data/NetCDF/test.pop.nc)
-
+    Data/NetCDF/test.pop.nc
+    Data/SLAC/ll-9cell-f523/ll-9cell-f523.ncdf
+    Data/SLAC/ll-9cell-f523/mode0.l0.R2.457036E+09I2.778314E+04.m3)
   add_subdirectory(Cxx)
 endif ()
diff --git a/IO/ParallelNetCDF/Testing/Cxx/CMakeLists.txt b/IO/ParallelNetCDF/Testing/Cxx/CMakeLists.txt
index 189f185dc7371a648f1abffba6863f2220b410d4..0d4670813758d5dfbde40b79ffbcc729aed582af 100644
--- a/IO/ParallelNetCDF/Testing/Cxx/CMakeLists.txt
+++ b/IO/ParallelNetCDF/Testing/Cxx/CMakeLists.txt
@@ -1,5 +1,13 @@
 vtk_add_test_cxx(vtkIOParallelNetCDFCxxTests tests
   TestPNetCDFPOPReader.cxx
   )
-
 vtk_test_cxx_executable(vtkIOParallelNetCDFCxxTests tests)
+
+if(VTK_USE_LARGE_DATA AND TARGET VTK::ParallelMPI)
+  vtk_add_test_mpi(vtkIOParallelNetCDFCxxTests-MPI tests
+    TESTING_DATA
+    PSLACReaderLinear.cxx
+    PSLACReaderQuadratic.cxx
+    )
+  vtk_test_cxx_executable(vtkIOParallelNetCDFCxxTests-MPI tests)
+endif()
diff --git a/IO/Parallel/Testing/Cxx/PSLACReaderLinear.cxx b/IO/ParallelNetCDF/Testing/Cxx/PSLACReaderLinear.cxx
similarity index 100%
rename from IO/Parallel/Testing/Cxx/PSLACReaderLinear.cxx
rename to IO/ParallelNetCDF/Testing/Cxx/PSLACReaderLinear.cxx
diff --git a/IO/Parallel/Testing/Cxx/PSLACReaderQuadratic.cxx b/IO/ParallelNetCDF/Testing/Cxx/PSLACReaderQuadratic.cxx
similarity index 100%
rename from IO/Parallel/Testing/Cxx/PSLACReaderQuadratic.cxx
rename to IO/ParallelNetCDF/Testing/Cxx/PSLACReaderQuadratic.cxx
diff --git a/IO/Parallel/Testing/Data/Baseline/PSLACReaderLinear.png.sha512 b/IO/ParallelNetCDF/Testing/Data/Baseline/PSLACReaderLinear.png.sha512
similarity index 100%
rename from IO/Parallel/Testing/Data/Baseline/PSLACReaderLinear.png.sha512
rename to IO/ParallelNetCDF/Testing/Data/Baseline/PSLACReaderLinear.png.sha512
diff --git a/IO/Parallel/Testing/Data/Baseline/PSLACReaderQuadratic.png.sha512 b/IO/ParallelNetCDF/Testing/Data/Baseline/PSLACReaderQuadratic.png.sha512
similarity index 100%
rename from IO/Parallel/Testing/Data/Baseline/PSLACReaderQuadratic.png.sha512
rename to IO/ParallelNetCDF/Testing/Data/Baseline/PSLACReaderQuadratic.png.sha512
diff --git a/IO/ParallelNetCDF/vtk.module b/IO/ParallelNetCDF/vtk.module
index ee7e1f00daf8d697c60855fe6a9041c16cfe96fe..f6ee6d050d795116ede7ba005524765cc64f2ced 100644
--- a/IO/ParallelNetCDF/vtk.module
+++ b/IO/ParallelNetCDF/vtk.module
@@ -6,8 +6,11 @@ KIT
   VTK::Parallel
 GROUPS
   MPI
+IMPLEMENTS
+  VTK::IONetCDF
 DEPENDS
   VTK::CommonExecutionModel
+  VTK::IONetCDF
 PRIVATE_DEPENDS
   VTK::CommonCore
   VTK::CommonDataModel
@@ -20,4 +23,5 @@ TEST_DEPENDS
   VTK::InteractionStyle
   VTK::ParallelMPI
   VTK::RenderingOpenGL2
+  VTK::RenderingParallel
   VTK::TestingRendering
diff --git a/IO/Parallel/vtkPSLACReader.cxx b/IO/ParallelNetCDF/vtkPSLACReader.cxx
similarity index 99%
rename from IO/Parallel/vtkPSLACReader.cxx
rename to IO/ParallelNetCDF/vtkPSLACReader.cxx
index 23010c9cc1f79448a8a794f9403294b4faeb99e8..2f8e74e6686012d8a3adb458c4ce206e6c509e85 100644
--- a/IO/Parallel/vtkPSLACReader.cxx
+++ b/IO/ParallelNetCDF/vtkPSLACReader.cxx
@@ -311,7 +311,7 @@ struct vtkPSLACReaderIdTypeHash
 };
 
 //=============================================================================
-vtkStandardNewMacro(vtkPSLACReader);
+vtkObjectFactoryNewMacro(vtkPSLACReader);
 
 vtkCxxSetObjectMacro(vtkPSLACReader, Controller, vtkMultiProcessController);
 
diff --git a/IO/Parallel/vtkPSLACReader.h b/IO/ParallelNetCDF/vtkPSLACReader.h
similarity index 97%
rename from IO/Parallel/vtkPSLACReader.h
rename to IO/ParallelNetCDF/vtkPSLACReader.h
index 860b3a6ae40a662136fe4b92e0917b906bc490e3..03a471e04ebd904755a491d00259585b026067f6 100644
--- a/IO/Parallel/vtkPSLACReader.h
+++ b/IO/ParallelNetCDF/vtkPSLACReader.h
@@ -35,12 +35,12 @@
 #ifndef vtkPSLACReader_h
 #define vtkPSLACReader_h
 
-#include "vtkIOParallelModule.h" // For export macro
+#include "vtkIOParallelNetCDFModule.h" // For export macro
 #include "vtkSLACReader.h"
 
 class vtkMultiProcessController;
 
-class VTKIOPARALLEL_EXPORT vtkPSLACReader : public vtkSLACReader
+class VTKIOPARALLELNETCDF_EXPORT vtkPSLACReader : public vtkSLACReader
 {
 public:
   vtkTypeMacro(vtkPSLACReader, vtkSLACReader);