diff --git a/src/THcHodoscope.cxx b/src/THcHodoscope.cxx
index c9c9cdf8fc55bcb3e873219add5c5f6cec40a5bf..1c469dc03114945dff7d7ca4ceaaf9bf7741925b 100644
--- a/src/THcHodoscope.cxx
+++ b/src/THcHodoscope.cxx
@@ -89,11 +89,12 @@ void THcHodoscope::Setup(const char* name, const char* description)
     strcat(desc, " Hodoscope Plane ");
     strcat(desc, fPlaneNames[i]);
 
-    fPlanes[i] = new THcScintillatorPlane(subname, desc); 
+    fPlanes[i] = new THcScintillatorPlane(subname, desc, this); 
     cout << "Created Scintillator Plane " << subname << ", " << desc << endl;
   }
 }
 
+#if 0
 //_____________________________________________________________________________
 void THcHodoscope::SetApparatus( THaApparatus* app )
 {
@@ -106,6 +107,7 @@ void THcHodoscope::SetApparatus( THaApparatus* app )
   }
   return;
 }
+#endif
 
 //_____________________________________________________________________________
 THaAnalysisObject::EStatus THcHodoscope::Init( const TDatime& date )
diff --git a/src/THcHodoscope.h b/src/THcHodoscope.h
index 0f02ba56cdaed83264815ac176cd9b935ba8da57..72703e18d1bcbc23e5039df4034953cc93f534d2 100644
--- a/src/THcHodoscope.h
+++ b/src/THcHodoscope.h
@@ -25,7 +25,7 @@ public:
   virtual Int_t      Decode( const THaEvData& );
   virtual EStatus    Init( const TDatime& run_time );
   
-  void SetApparatus( THaApparatus* );
+  //  void SetApparatus( THaApparatus* );
 
   virtual Int_t      CoarseProcess( TClonesArray& tracks );
   virtual Int_t      FineProcess( TClonesArray& tracks );
diff --git a/src/THcScintillatorPlane.cxx b/src/THcScintillatorPlane.cxx
index 9373b01a648a797f698288aff5036af8824de9d6..079d869a04009e39aed2ce51e437e547831328a4 100644
--- a/src/THcScintillatorPlane.cxx
+++ b/src/THcScintillatorPlane.cxx
@@ -20,8 +20,8 @@ ClassImp(THcScintillatorPlane)
 //______________________________________________________________________________
 THcScintillatorPlane::THcScintillatorPlane( const char* name, 
 		    const char* description,
-		    THaApparatus* apparatus )
-  : THaNonTrackingDetector(name,description,apparatus)
+		    THaDetectorBase* parent )
+  : THaSubDetector(name,description,parent)
 {
   // Normal constructor with name and description
 
@@ -39,8 +39,16 @@ THaAnalysisObject::EStatus THcScintillatorPlane::Init( const TDatime& date )
 
   cout << "THcScintillatorPlane::Init called " << GetName() << endl;
 
-  if( THaNonTrackingDetector::Init( date ) ) 
-    return fStatus;
+  if( IsZombie())
+    return fStatus = kInitError;
+
+  // How to get information for parent
+  //  if( GetParent() )
+  //    fOrigin = GetParent()->GetOrigin();
+
+  EStatus status;
+  if( status=THaSubDetector::Init( date ) )
+    return fStatus = status;
 
   //  const DataDest tmp[NDEST] = {
   //    { &fLTNhit, &fLANhit, fLT, fLA },
@@ -55,6 +63,10 @@ THaAnalysisObject::EStatus THcScintillatorPlane::Init( const TDatime& date )
 //_____________________________________________________________________________
 Int_t THcScintillatorPlane::ReadDatabase( const TDatime& date )
 {
+
+  // See what file it looks for
+  FILE* file = OpenFile( date );
+  
   static const char* const here = "ReadDatabase()";
   const int LEN = 200;
   char buf[LEN];
diff --git a/src/THcScintillatorPlane.h b/src/THcScintillatorPlane.h
index 55567928ca5c2c870ecece01e6d4f849d3d17340..8d1bb08659c61efbc74689ac31c24da794b4eec0 100644
--- a/src/THcScintillatorPlane.h
+++ b/src/THcScintillatorPlane.h
@@ -12,13 +12,15 @@
 // 
 //////////////////////////////////////////////////////////////////////////////
 
-#include "THaNonTrackingDetector.h"
+#include "THaSubDetector.h"
 
-class THcScintillatorPlane : public THaNonTrackingDetector {
+class THaEvData;
+
+class THcScintillatorPlane : public THaSubDetector {
   
  public:
   THcScintillatorPlane( const char* name, const char* description,
-			  THaApparatus* a = NULL);
+			  THaDetectorBase* parent = NULL);
   virtual ~THcScintillatorPlane();
 
   virtual Int_t Decode( const THaEvData& );