diff --git a/examples/custom-apps/custom-app.h b/examples/custom-apps/custom-app.h
new file mode 100644
index 0000000..1ae1f4f
--- /dev/null
+++ b/examples/custom-apps/custom-app.h
@@ -0,0 +1,71 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2011-2012 University of California, Los Angeles
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ */
+
+// custom-app.h
+
+#ifndef CUSTOM_APP_H_
+#define CUSTOM_APP_H_
+
+#include "ns3/ndn-app.h"
+
+namespace ns3 {
+
+/**
+ * @brief A simple custom application
+ *
+ * This applications demonstrates how to send Interests and respond with ContentObjects to incoming interests
+ *
+ * When application starts it "sets interest filter" (install FIB entry) for /prefix/sub, as well as
+ * sends Interest for this prefix
+ *
+ * When an Interest is received, it is replied with a ContentObject with 1024-byte fake payload
+ */
+class CustomApp : public ndn::App
+{
+public:
+  // register NS-3 type "CustomApp"
+  static TypeId
+  GetTypeId ();
+  
+  // (overridden from ndn::App) Processing upon start of the application
+  virtual void
+  StartApplication ();
+
+  // (overridden from ndn::App) Processing when application is stopped
+  virtual void
+  StopApplication ();
+
+  // (overridden from ndn::App) Callback that will be called when Interest arrives
+  virtual void
+  OnInterest (const Ptr<const ndn::InterestHeader> &interest, Ptr<Packet> origPacket);
+
+  // (overridden from ndn::App) Callback that will be called when Data arrives
+  virtual void
+  OnContentObject (const Ptr<const ndn::ContentObjectHeader> &contentObject,
+                   Ptr<Packet> payload);
+
+private:
+  void
+  SendInterest ();
+};
+
+} // namespace ns3
+
+#endif // CUSTOM_APP_H_
