diff --git a/src/logic.hpp b/src/logic.hpp
index 1d4fa8e..1aef992 100644
--- a/src/logic.hpp
+++ b/src/logic.hpp
@@ -442,28 +442,28 @@
   void
   onRecoveryTimeout(const Interest& interest);
 
-  /**
-   * @brief Helper method to send Exclude Interest
-   *
-   * @param interest    The interest whose exclude filter will be augmented
-   * @param data        The data whose implicit digest will be inserted into exclude filter
-   */
-  void
-  sendExcludeInterest(const Interest& interest, const Data& data);
+  // /**
+  //  * @brief Helper method to send Exclude Interest
+  //  *
+  //  * @param interest    The interest whose exclude filter will be augmented
+  //  * @param data        The data whose implicit digest will be inserted into exclude filter
+  //  */
+  // void
+  // sendExcludeInterest(const Interest& interest, const Data& data);
 
-  /**
-   * @brief Helper method to form the exclude Interest and calls sendExcludeInterest
-   *
-   * @param interest       The interest whose exclude filter will be augmented
-   * @param nodePrefix     The prefix of the sender node
-   * @param commit         The commit whose contents will be used to obtain the implicit
-                           digest to be excluded
-   * @param previousRoot   The digest to be included in the interest
-   */
-  void
-  formAndSendExcludeInterest(const Name& nodePrefix,
-                             const State& commit,
-                             ConstBufferPtr previousRoot);
+  // /**
+  //  * @brief Helper method to form the exclude Interest and calls sendExcludeInterest
+  //  *
+  //  * @param interest       The interest whose exclude filter will be augmented
+  //  * @param nodePrefix     The prefix of the sender node
+  //  * @param commit         The commit whose contents will be used to obtain the implicit
+  //                          digest to be excluded
+  //  * @param previousRoot   The digest to be included in the interest
+  //  */
+  // void
+  // formAndSendExcludeInterest(const Name& nodePrefix,
+  //                            const State& commit,
+  //                            ConstBufferPtr previousRoot);
 
 public:
   static const ndn::Name DEFAULT_NAME;
