diff --git a/src/util/dummy-client-face.hpp b/src/util/dummy-client-face.hpp
index 8d47a75..b5ec7d7 100644
--- a/src/util/dummy-client-face.hpp
+++ b/src/util/dummy-client-face.hpp
@@ -26,6 +26,8 @@
 #include "signal.hpp"
 #include "../lp/packet.hpp"
 
+#define NDN_UTIL_DUMMY_FACE_KEEP_DEPRECATED
+
 namespace ndn {
 namespace util {
 
@@ -48,6 +50,16 @@
     bool enableRegistrationReply;
   };
 
+  /**
+   * @brief Create a dummy face with internal IO service
+   */
+  DummyClientFace(const Options& options = DummyClientFace::DEFAULT_OPTIONS);
+
+  /**
+   * @brief Create a dummy face with the provided IO service
+   */
+  DummyClientFace(boost::asio::io_service& ioService, const Options& options = DummyClientFace::DEFAULT_OPTIONS);
+
   /** \brief cause the Face to receive a packet
    *  \tparam Packet either Interest or Data
    */
@@ -58,22 +70,9 @@
 private: // constructors
   class Transport;
 
-  // constructors are private; use makeDummyClientFace to create DummyClientFace
-
-  DummyClientFace(const Options& options, shared_ptr<Transport> transport);
-
-  DummyClientFace(const Options& options, shared_ptr<Transport> transport,
-                  boost::asio::io_service& ioService);
-
   void
   construct(const Options& options);
 
-  friend shared_ptr<DummyClientFace>
-  makeDummyClientFace(const DummyClientFace::Options& options);
-
-  friend shared_ptr<DummyClientFace>
-  makeDummyClientFace(boost::asio::io_service& ioService, const DummyClientFace::Options& options);
-
 private:
   void
   enablePacketLogging();
@@ -103,7 +102,11 @@
    *  User of this class is responsible for cleaning up the container, if necessary.
    *  After .put, .processEvents must be called before the Data would show up here.
    */
-  std::vector<Data> sentDatas;
+  std::vector<Data> sentData;
+
+#ifdef NDN_UTIL_DUMMY_FACE_KEEP_DEPRECATED
+  std::vector<Data>& sentDatas; ///< deprecated alias to sentData
+#endif // NDN_UTIL_DUMMY_FACE_KEEP_DEPRECATED
 
   /** \brief NACKs sent out of this DummyClientFace
    *
@@ -130,21 +133,28 @@
    *  After .put, .processEvents must be called before this signal would be emitted.
    */
   Signal<DummyClientFace, lp::Nack> onSendNack;
-
-private:
-  shared_ptr<Transport> m_transport;
 };
 
 template<>
 void
 DummyClientFace::receive(const lp::Nack& nack);
 
+#ifdef NDN_UTIL_DUMMY_FACE_KEEP_DEPRECATED
+/**
+ * @brief Create a dummy face with internal IO service
+ * @deprecated Use the DummyFace constructor directly
+ */
 shared_ptr<DummyClientFace>
 makeDummyClientFace(const DummyClientFace::Options& options = DummyClientFace::DEFAULT_OPTIONS);
 
+/**
+ * @brief Create a dummy face with the provided IO service
+ * @deprecated Use the DummyFace constructor directly
+ */
 shared_ptr<DummyClientFace>
 makeDummyClientFace(boost::asio::io_service& ioService,
                     const DummyClientFace::Options& options = DummyClientFace::DEFAULT_OPTIONS);
+#endif // NDN_UTIL_DUMMY_FACE_KEEP_DEPRECATED
 
 } // namespace util
 } // namespace ndn
