diff --git a/objectstore/DriveRegister.cpp b/objectstore/DriveRegister.cpp
index 8047e69b048014021b776249340ef1e7c2069088..79787db61364ea99e6c51f8379b23604681b9708 100644
--- a/objectstore/DriveRegister.cpp
+++ b/objectstore/DriveRegister.cpp
@@ -67,7 +67,7 @@ void cta::objectstore::DriveRegister::garbageCollect(const std::string &presumed
 }
 
 
-void cta::objectstore::DriveRegister::addDrive(std::string driveName) {
+void cta::objectstore::DriveRegister::addDrive(std::string driveName) { //add logical library to the parameters
   checkPayloadWritable();
   // Check that we are not trying to duplicate a drive
   try {
diff --git a/scheduler/LogicalLibrary.hpp b/scheduler/LogicalLibrary.hpp
index e3ddef4864c1955303250139c36c45735701895a..c53e307c5df108fdd76abef3868974ea6777880d 100644
--- a/scheduler/LogicalLibrary.hpp
+++ b/scheduler/LogicalLibrary.hpp
@@ -56,6 +56,11 @@ struct LogicalLibrary  {
    */
   std::string name;
   
+  /**
+   * The state of the library online/offline
+   */  
+  bool online;
+  
   /**
    * The record of the entry's creation
    */
diff --git a/tapeserver/castor/tape/tapeserver/client/ClientInterface.hpp b/tapeserver/castor/tape/tapeserver/client/ClientInterface.hpp
index ae1224597ea680c65161a6d5df0ff51522fa31d3..ae5efb88508da1fc0ed11c15322f70dec37c0b6a 100644
--- a/tapeserver/castor/tape/tapeserver/client/ClientInterface.hpp
+++ b/tapeserver/castor/tape/tapeserver/client/ClientInterface.hpp
@@ -54,7 +54,7 @@ public :
    */
   class RequestReport {
   public:
-    RequestReport(): transactionId(0),
+    RequestReport(): transactionId(""),
             connectDuration(0), sendRecvDuration(0) {}
     std::string transactionId;
     double connectDuration;
diff --git a/tapeserver/castor/tape/tapeserver/daemon/DataTransferSession.cpp b/tapeserver/castor/tape/tapeserver/daemon/DataTransferSession.cpp
index 905f7176e58f5f7c70a349041942a02d1d2efee4..13e66c9c7de599d9a08984677fe7b3350ff37c7e 100644
--- a/tapeserver/castor/tape/tapeserver/daemon/DataTransferSession.cpp
+++ b/tapeserver/castor/tape/tapeserver/daemon/DataTransferSession.cpp
@@ -88,7 +88,7 @@ castor::tape::tapeserver::daemon::Session::EndOfSessionAction
   lc.pushOrReplace(log::Param("thread", "MainThread"));
   // 2a) Get initial information from the client
   client::ClientProxy::RequestReport reqReport;
-  std::unique_ptr<cta::TapeMount> tapeMount(m_scheduler.getNextMount(m_driveConfig.getLogicalLibrary(), m_driveConfig.getUnitName()));
+  std::unique_ptr<cta::TapeMount> tapeMount(m_scheduler.getNextMount(m_driveConfig.getLogicalLibrary(), m_driveConfig.getUnitName())); //getNextMount throws not implemented exception
   m_volInfo.vid=tapeMount->getVid();
   m_volInfo.mountType=tapeMount->getMountType();
   m_volInfo.density=tapeMount->getDensity();
@@ -173,7 +173,7 @@ castor::tape::tapeserver::daemon::Session::EndOfSessionAction
     // We are now ready to put everything in motion. First step is to check
     // we get any concrete job to be done from the client (via the task injector)
     castor::utils::Timer timer;
-    if (rti.synchronousInjection()) {
+    if (rti.synchronousInjection()) {  //adapt the recall task injector (starting from synchronousInjection)
       // We got something to recall. Time to start the machinery
       trst.setWaitForInstructionsTime(timer.secs());
       rwd.startThread();