diff --git a/.waf-tools/osx-frameworks.py b/.waf-tools/osx-frameworks.py
index 9936778..6a473c0 100644
--- a/.waf-tools/osx-frameworks.py
+++ b/.waf-tools/osx-frameworks.py
@@ -45,7 +45,7 @@
                     # Download to local path and retry
                     Logs.info ("Sparkle framework not found, trying to download it to 'build/'")
 
-                    urllib.urlretrieve ("https://github.com/sparkle-project/Sparkle/releases/download/1.16.0/Sparkle-1.16.0.tar.bz2", "build/Sparkle.tar.bz2")
+                    urllib.urlretrieve ("https://github.com/sparkle-project/Sparkle/releases/download/1.17.0/Sparkle-1.17.0.tar.bz2", "build/Sparkle.tar.bz2")
                     if os.path.exists('build/Sparkle.tar.bz2'):
                         try:
                             subprocess.check_call(['mkdir', 'build/Sparkle'])
diff --git a/README.md b/README.md
index f45417d..fe46e3e 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
-NFD Control Center
+NDN Control Center
 ==================
 
-NFD Control Center is a helper application to manager local instance of NFD.  In addition to that, on macOS NFD Control Center also bundles an internal version of NFD.
+NDN Control Center is a helper application to manager local instance of NFD.  In addition to that, on macOS NDN Control Center also bundles an internal version of NFD.
 
 ## Notes
 
diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index 7edf6b0..6ef9a37 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -1,6 +1,21 @@
 Release Notes
 =============
 
+## Version 0.2.2
+
+Changes since version 0.2.1:
+
+- Rename to `NDN Control Center`
+
+- Bundled components
+
+    * [NFD version 0.5.1-38-gd396b61]
+    * [ndn-cxx version 0.5.1-34-g1709aa70]
+
+- Update tray icon
+
+- NFD status display
+
 ## Version 0.2.1
 
 Changes since version 0.2.0:
diff --git a/auto-release.sh b/auto-release.sh
new file mode 100755
index 0000000..5c378c4
--- /dev/null
+++ b/auto-release.sh
@@ -0,0 +1,109 @@
+#!/usr/bin/env bash
+
+#######################################
+## Attention:
+##     Please make sure to update your wscript, RELEASE_NOTES.md and intro.md in
+##     docs beforehand, and then run this script to auto-release application.
+
+usage()
+{
+  echo "Usage:"
+  echo "  $0 <VERSION> <IDENTITY> <SPARKLE_KEY>"
+  echo ""
+  echo "Options:"
+  echo "  <VERSION>: the version that will be used for this release"
+  echo "  <IDENTITY>: XCode identity (Mac Developer) that will be used for signing the application"
+  echo "  <SPARKLE_KEY>: the path to your Sparkle private key for signing the application"
+  echo ""
+  exit
+}
+
+#######################################
+## Script for automatically release application binary
+
+NCC_VERSION=${NCC_VERSION:-$1}
+IDENTITY=${IDENTITY:-$2}
+KEY_LOCATION=${KEY_LOCATION:-$3}
+
+if [[ -z $NCC_VERSION ]] || [[ -z $IDENTITY ]] || [[ -z $KEY_LOCATION ]]; then
+  usage
+fi
+
+echo "Preparing release $NCC_VERSION"
+echo "  will sign with XCode identity: $IDENTITY"
+echo "  will sign with Sparkle key: $KEY_LOCATION"
+
+BINARY_WEBSERVER=${BINARY_WEBSERVER:-named-data.net:binaries/NDN-Control-Center/}
+
+rm -rf build/release
+mkdir build/release
+
+#######################################
+## Build .dmg file with code sign with Apple Developer ID
+
+echo "[auto-release] Build .dmg file and sign with Apple Developer ID"
+
+./make-osx-bundle.py -r "${NCC_VERSION}" --codesign="${IDENTITY}"
+
+#######################################
+## Code sign with Sparkle (private key existed)
+
+cp build/NDN-${NCC_VERSION}.dmg build/release/
+cp build/release-notes-${NCC_VERSION}.html build/release/
+
+#######################################
+## Code sign with Sparkle (private key needed)
+
+#OPENSSL="/usr/bin/openssl"
+#openssl gendsa <($OPENSSL dsaparam 4096) -out dsa_priv.pem
+#chmod 0400 dsa_priv.pem
+#openssl dsa -in dsa_priv.pem -pubout -out ndn_sparkle_pub.pem
+#mv ndn_sparkle_pub.pem ../res/
+#./bin/sign_update "../NDN-${NCC_VERSION}.dmg" "${KEY_LOCATION}"
+
+#######################################
+## Generate appcast xml file
+
+echo "[auto-release] Generate appcast xml file"
+
+./build/Sparkle/bin/generate_appcast "${KEY_LOCATION}" build/release/
+
+cp ndn-control-center.xml build/
+cat <<EOF | python -
+import xml.etree.ElementTree
+cast = xml.etree.ElementTree.parse('build/ndn-control-center.xml')
+item = xml.etree.ElementTree.parse('build/release/ndn-control-center.xml')
+
+ndncxx = open("build/ndn-cxx/VERSION").read()
+nfd = open("build/NFD/VERSION").read()
+tools = open("build/ndn-tools/VERSION").read()
+
+channel = cast.getroot()[0]
+
+for item in item.getroot().findall('./channel/item'):
+    ncc = item.findall('.//title')[0].text
+    item.findall('.//title')[0].text = "Version %s (ndn-cxx version %s, NFD version %s, ndn-tools version %s)" % (ncc, ndncxx, nfd, tools)
+    notes = xml.etree.ElementTree.Element('ns0:releaseNotesLink')
+    notes.text = 'https://named-data.net/binaries/NDN-Control-Center/release-notes-%s.html' % ncc
+    item.append(notes)
+    channel.append(item)
+
+cast.write('ndn-control-center.xml', encoding="utf-8")
+EOF
+
+cp ndn-control-center.xml build/release/
+
+#######################################
+## Upload dmg & xml & html to https://named-data.net/binaries/NDN-Control-Center/
+
+echo "[auto-release] Publish dmg xml and html file to website server"
+
+pushd build
+pushd release
+ln -s "NDN-${NCC_VERSION}.dmg" NDN.dmg
+ln -s "release-notes-${NCC_VERSION}.html" release-notes.html
+popd
+popd
+
+echo "Ready to upload:"
+echo "rsync -avz build/release/* \"${BINARY_WEBSERVER}\""
diff --git a/docs/images/adhoc-1.png b/docs/images/adhoc-1.png
new file mode 100644
index 0000000..5bde10a
--- /dev/null
+++ b/docs/images/adhoc-1.png
Binary files differ
diff --git a/docs/images/adhoc-2.png b/docs/images/adhoc-2.png
new file mode 100644
index 0000000..1ed5ee9
--- /dev/null
+++ b/docs/images/adhoc-2.png
Binary files differ
diff --git a/docs/images/autoconfig.png b/docs/images/autoconfig.png
index 574a543..22f742b 100644
--- a/docs/images/autoconfig.png
+++ b/docs/images/autoconfig.png
Binary files differ
diff --git a/docs/images/forwarder.png b/docs/images/forwarder.png
index 9424277..fc8dfa8 100644
--- a/docs/images/forwarder.png
+++ b/docs/images/forwarder.png
Binary files differ
diff --git a/docs/images/general.png b/docs/images/general.png
index 3ddea07..a82a89d 100644
--- a/docs/images/general.png
+++ b/docs/images/general.png
Binary files differ
diff --git a/docs/images/main-menu.png b/docs/images/main-menu.png
index 16574a6..96e28bf 100644
--- a/docs/images/main-menu.png
+++ b/docs/images/main-menu.png
Binary files differ
diff --git a/docs/images/management.png b/docs/images/management.png
new file mode 100644
index 0000000..9a28570
--- /dev/null
+++ b/docs/images/management.png
Binary files differ
diff --git a/docs/intro.md b/docs/intro.md
index 817b8aa..9de24e0 100644
--- a/docs/intro.md
+++ b/docs/intro.md
@@ -1,87 +1,102 @@
-NFD Control Center
+NDN Control Center
 ==================
 
-![](https://named-data.net/binaries/NFD-Control-Center/images/demo.gif){align="right" style="max-width:60%"}
+![](https://named-data.net/binaries/NDN-Control-Center/images/demo.gif){align="right" style="max-width:60%"}
 
-NFD Control Center is a software module for desktop systems to manage local instance of Named Data Forwarding Daemon (NFD). The current released macOS version of the NFD Control Center (0.2.1) is built with newest ndn-cxx (0.5.1) and bundles in a newest version of NFD (0.5.1) and NDN Essential tools (0.4). NFD Control Center provides macOS users a simple way to get NDN connectivity and keep up with the latest updates of NFD. The NFD Control Center supplies various features, such as:
+NDN Control Center is a software module for desktop systems to manage local instance of Named Data Forwarding Daemon (NFD). The current released macOS version of the NDN Control Center is built with newest ndn-cxx (0.5.1) and bundles in a newest version of NFD (0.5.1) and NDN tools (0.4). NDN Control Center provides macOS users a simple way to get NDN connectivity and keep up with the latest updates of NFD. The NDN Control Center supplies various features, such as:
 
 - Start Control Center as soon as computers starts
 - Start NFD daemon as soon as Control Center starts
+- Monitor detailed NFD status information
+- Modify NFD parameters
 - Start/Stop NDN auto-configuration to connect to NDN testbed
   automatically
 - Shut down NFD daemon when exit the Control Center
-- Automatically upgrade NFD Control Center application
+- Automatically upgrade NDN Control Center application
 - View the NDN keys on local system
 - Enable NDN Command line usage in terminal
+- Enable Ad Hoc WiFi communication
 
-Soon to be released version will also include NDN security management, a simple interface to enable ad hoc WiFi communication, discovering available data within the network.
+Soon to be released version will also include NDN security management, discovering available data within the network.
 
 ## Download
 
 - macOS 10.12
 
-    * [Version 0.2.1](https://named-data.net/binaries/NFD-Control-Center/NDN-0.2.1.dmg)
+    * [Latest version](https://named-data.net/binaries/NDN-Control-Center/NDN.dmg)
 
 - Source
 
-    * [Github](https://github.com/named-data/NFD-Control-Center)
-    * [NDN Gerrit](https://gerrit.named-data.net/NFD-Control-Center)
+    * [Github](https://github.com/named-data/NDN-Control-Center)
 
 - Issue requests and bug reporting
 
-    * [NDN Redmine](https://redmine.named-data.net/projects/nfd-control-center/issues)
+    * [NDN Redmine](https://redmine.named-data.net/projects/ndn-control-center/issues)
 
-- [Release notes](https://github.com/named-data/NFD-Control-Center/blob/master/RELEASE_NOTES.md#release-notes)
+- [Release notes](https://github.com/named-data/NDN-Control-Center/blob/master/RELEASE_NOTES.md#release-notes)
 
 ## Getting Started
 
-Download `.dmg` of the latest version of the NFD control center and install it by simply double clicking dmg package and dragging `NFD.app` to Application folder.
+Download `.dmg` of the latest version of the NDN control center and install it by simply double clicking dmg package and dragging `NDN.app` to Application folder.
 
-![](https://named-data.net/binaries/NFD-Control-Center/images/dmg_install.png){style="display: block; margin:0 auto 0 auto; max-width:90%"}
+![](https://named-data.net/binaries/NDN-Control-Center/images/dmg_install.png){style="display: block; margin:0 auto 0 auto; max-width:90%"}
 
-### Launch NFD Control Center
+### Launch NDN Control Center
 
-In the Launchpad, click on NDN application icon to launch NFD Control Center. Application icon will show on the menu bar and the main menu can be opened from there.
+In the Launchpad, click on NDN application icon to launch NDN Control Center. Application icon will show on the menu bar and the main menu can be opened from there.
 
-![](https://named-data.net/binaries/NFD-Control-Center/images/main-menu.png){style="display: block; margin:0 auto 0 auto; max-width:90%"}
+![](https://named-data.net/binaries/NDN-Control-Center/images/main-menu.png){style="display: block; margin:0 auto 0 auto; max-width:90%"}
 
 ## Settings and Usage
 
 ### Preferences
 
-Preferences window contains 5 tab views. The first tab **General** is the general settings for NFD Control Center. The NFD Control Center application will save the user's settings permanently in local system no matter the application is upgraded or reinstalled. The default setting is *false*.
+Preferences window contains 3 tab views. The first tab **General** is the general settings for NDN Control Center. The NDN Control Center application will save the user's settings permanently in local system no matter the application is upgraded or reinstalled. The default setting is *false*.
 
-- Launch NFD Control Center as soon as system login
-- Start NFD daemon as soon as NFD Control Center starts
+- Launch NDN Control Center as soon as system login
+- Start NFD daemon as soon as NDN Control Center starts
 - Start auto-configuration daemon as soon as NFD starts
-- Shutdown NFD daemon when NFD Control Center quits
+- Shutdown NFD daemon when NDN Control Center quits
 - Open NDN testbed webpage
 - Open NDN routing status webpage
 - Version information display
 
-![](https://named-data.net/binaries/NFD-Control-Center/images/general.png){style="display: block; margin:0 auto 0 auto; max-width:90%"}
-
-**Forwarder status** tab displays the detailed forwarder status information. Nothing will show up if NFD daemon is not on.
-
-![](https://named-data.net/binaries/NFD-Control-Center/images/forwarder.png){style="display: block; margin:0 auto 0 auto; max-width:90%"}
+![](https://named-data.net/binaries/NDN-Control-Center/images/general.png){style="display: block; margin:0 auto 0 auto; max-width:90%"}
 
 **Auto-config status** tab displays the detailed auto-configuration information generated by NDN auto-config tool. It logs the auto-configuration information until application exits. When start auto-configuration on the system for the first time, macOS will ask you for permission to access keychain. Choose Always Allow to avoid the window pops up again.
 
 <div style="text-align: center" markdown="1">
-![](https://named-data.net/binaries/NFD-Control-Center/images/autoconfig.png){style="max-width:40%"}
-![](https://named-data.net/binaries/NFD-Control-Center/images/autoconfig-key.png){style="max-width:40%"}
+![](https://named-data.net/binaries/NDN-Control-Center/images/autoconfig.png){style="max-width:40%"}
+![](https://named-data.net/binaries/NDN-Control-Center/images/autoconfig-key.png){style="max-width:40%"}
 </div>
 
-**Security** tab is under construction currently.
+**Management** tab contains various operations for modifying the NFD parameters, including create/destroy face, add/remove FIB next-hop, register/unregister RIB entry and set/unset strategy for a name.
+
+![](https://named-data.net/binaries/NDN-Control-Center/images/management.png){style="display: block; margin:0 auto 0 auto; max-width:40%"}
+
+### Status
+
+Status window has 6 tab views to show the detailed information about local running NFD, including general forwarder status, channels, faces, FIB, RIB, strategies.
+
+![](https://named-data.net/binaries/NDN-Control-Center/images/forwarder.png){style="display: block; margin:0 auto 0 auto; max-width:90%"}
+
+### Enable Ad Hoc WiFi
+
+Simply click on this menu entry and the ad hoc WiFi mode will be turned on. It will connect to `NDNDirect` automatically. Once disable the ad hoc WiFi, it will re-connect to de default WiFi again.
+
+<div style="text-align: center" markdown="1">
+![](https://named-data.net/binaries/NDN-Control-Center/images/adhoc-1.png){style="max-width:40%"}
+![](https://named-data.net/binaries/NDN-Control-Center/images/adhoc-2.png){style="max-width:40%"}
+</div>
 
 ### Enable Command Terminal Usage
 
 Choosing this menu entry will let the users be able to use the command-line tools in terminal on local macOS system. Simply click on it and fill in the user name and password in the popup dialog. Then users will be able to use all NDN related command-line tools in terminal afterwards.
 
-![](https://named-data.net/binaries/NFD-Control-Center/images/enableterminal.png){style="display: block; margin:0 auto 0 auto; max-width:90%"}
+![](https://named-data.net/binaries/NDN-Control-Center/images/enableterminal.png){style="display: block; margin:0 auto 0 auto; max-width:90%"}
 After enabling command-line tools in terminal, users can type in the command line to launch NDN tools, checking NFD status and so on. One example shown below is that users can use "*ndn nfd-status*" command to check the general NFD status.
 
-![](https://named-data.net/binaries/NFD-Control-Center/images/commandlinetools.png){style="display: block; margin:0 auto 0 auto; max-width:90%"}
+![](https://named-data.net/binaries/NDN-Control-Center/images/commandlinetools.png){style="display: block; margin:0 auto 0 auto; max-width:90%"}
 Currently, `ndn` supports the following command-line tools:
 
 - **NFD and supporting tools**
@@ -135,17 +150,15 @@
 
 ### Check for updates
 
-This menu entry is designed for automatically upgrading. Everytime when NFD Control Center starts, it will automatically check the upgrade information from the server. If there is an available upgrading, upgrading dialog will pop up and users can choose the their preferred action. During the upgrade, NFD and NDN auto-configuration will be stopped. Users also can check the upgrading information manually by clicking this menu entry.
+This menu entry is designed for automatically upgrading. Everytime when NDN Control Center starts, it will automatically check the upgrade information from the server. If there is an available upgrading, upgrading dialog will pop up and users can choose the their preferred action. During the upgrade, NFD and NDN auto-configuration will be stopped. Users also can check the upgrading information manually by clicking this menu entry.
 
-![](https://named-data.net/binaries/NFD-Control-Center/images/autoupdate.png){style="display: block; margin:0 auto 0 auto; max-width:90%"}
+![](https://named-data.net/binaries/NDN-Control-Center/images/autoupdate.png){style="display: block; margin:0 auto 0 auto; max-width:90%"}
 
 ### Quit
 
-Users can check the "*Shutdown NFD daemon on quit*" box to terminate NFD daemon along with quitting NFD Control Center. Otherwise, NFD daemon will keep running even if user quits the NFD Control Center.
+Users can check the "*Shutdown NFD daemon on quit*" box to terminate NFD daemon along with quitting NDN Control Center. Otherwise, NFD daemon will keep running even if user quits the NDN Control Center.
 
 ## Future Development Plan
 
 - NDN security management, integrating with ndncert
-- Enable ad hoc WiFi communication
-- Full NFD management
 - Support for different OS other than macOS
diff --git a/make-deps.sh b/make-deps.sh
index 4cb7600..7413abe 100755
--- a/make-deps.sh
+++ b/make-deps.sh
@@ -4,8 +4,8 @@
 export PATH=/usr/bin:/bin:/usr/sbin:/sbin
 export PKGCONFIG=/usr/local/bin/pkg-config
 
-NDN_CXX_COMMIT=${NDN_CXX_COMMIT:-ndn-cxx-0.5.1}
-NFD_COMMIT=${NFD_COMMIT:-NFD-0.5.1}
+NDN_CXX_COMMIT=${NDN_CXX_COMMIT:-1709aa70999bd8cbe0e7c680aaab37f2d24323a5}
+NFD_COMMIT=${NFD_COMMIT:-d396b61ba14a84b34d3ae65db4530062f7d43301}
 NDN_TOOLS_COMMIT=${NDN_TOOLS_COMMIT:-ndn-tools-0.4}
 
 GIT=${GIT:-https://github.com/named-data}
diff --git a/make-osx-bundle.py b/make-osx-bundle.py
index ca34843..4a78a58 100755
--- a/make-osx-bundle.py
+++ b/make-osx-bundle.py
@@ -18,7 +18,7 @@
   print "This script is indended to be run only on OSX platform"
   exit (1)
 
-MIN_SUPPORTED_VERSION="10.10"
+MIN_SUPPORTED_VERSION="10.12"
 
 current_version = tuple(int(i) for i in platform.mac_ver()[0].split('.')[0:2])
 min_supported_version = tuple(int(i) for i in MIN_SUPPORTED_VERSION.split('.')[0:2])
@@ -379,10 +379,8 @@
     sys.exit(1)
 
   # Do the finishing touches to our Application bundle before release
-  shutil.rmtree('build/%s/NDN.app' % (MIN_SUPPORTED_VERSION), ignore_errors=True)
-  a = AppBundle('build/%s/NDN.app' % (MIN_SUPPORTED_VERSION), ver, 'build/NFD Control Center.app')
-  # a.copy_qt_plugins()
-  # a.handle_libs()
+  shutil.rmtree('build/NDN.app', ignore_errors=True)
+  a = AppBundle('build/NDN.app', ver, 'build/NDN Control Center.app')
   a.copy_ndn_deps("build/deps")
   # a.copy_resources(['qt.conf'])
   a.copy_etc(['nfd.conf'])
@@ -398,11 +396,11 @@
     print ''
 
   # Create diskimage
-  title = "NDN-%s-%s" % (ver, MIN_SUPPORTED_VERSION)
+  title = "NDN-%s" % ver
   fn = "build/%s.dmg" % title
   d = DiskImage(fn, title)
   d.symlink('/Applications', '/Applications')
-  d.copy('build/%s/NDN.app' % MIN_SUPPORTED_VERSION, '/NDN.app')
+  d.copy('build/NDN.app', '/NDN.app')
   d.create()
 
   if options.codesign:
diff --git a/nfd-control-center.desktop.in b/ndn-control-center.desktop.in
similarity index 74%
rename from nfd-control-center.desktop.in
rename to ndn-control-center.desktop.in
index ddf2f64..ca4f7c0 100644
--- a/nfd-control-center.desktop.in
+++ b/ndn-control-center.desktop.in
@@ -1,12 +1,12 @@
 [Desktop Entry]
 Version=1.0
-Name=NFD Control Center
+Name=NDN Control Center
 Keywords=Internet;NDN
 Exec=@BINDIR@/@BINARY@
 Terminal=false
 X-MultipleArgs=false
 Type=Application
-Icon=@DATAROOTDIR@/nfd-control-center/ndn_app.png
+Icon=@DATAROOTDIR@/ndn-control-center/ndn_app.png
 Categories=GNOME;GTK;Network;
 StartupNotify=true
 Actions=NewWindow;NewPrivateWindow;
diff --git a/ndn-control-center.xml b/ndn-control-center.xml
index adc2f05..1f673e1 100644
--- a/ndn-control-center.xml
+++ b/ndn-control-center.xml
@@ -1,4 +1,4 @@
-<rss xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
+<rss xmlns:ns0="http://www.andymatuschak.org/xml-namespaces/sparkle" version="2.0">
   <channel>
     <title>NDN App Changleog</title>
     <link>
@@ -8,27 +8,25 @@
     <language>en</language>
     <item>
       <title>Version 0.2.0 (ndn-cxx version 0.5.1, NFD version 0.5.1, ndn-tools version 0.4)</title>
-      <sparkle:releaseNotesLink>
+      <ns0:releaseNotesLink>
         https://named-data.net/binaries/NFD-Control-Center/release-notes-0.2.0.html
-      </sparkle:releaseNotesLink>
+      </ns0:releaseNotesLink>
       <pubDate>Wed, 4 Feb 2017 22:51:00 +0000</pubDate>
-      <enclosure url="https://named-data.net/binaries/NFD-Control-Center/NDN-0.2.0.dmg"
-                 sparkle:version="0.2.0"
-                 sparkle:dsaSignature="MCwCFE99cPadMXCDKvUV8uzj7lLlSFIzAhQwcJtGb0VaVAEEsvzumr64SBWJvw=="
-                 length="27627391"
-                 type="application/octet-stream" />
+      <enclosure length="27627391" type="application/octet-stream" url="https://named-data.net/binaries/NFD-Control-Center/NDN-0.2.0.dmg" ns0:dsaSignature="MCwCFE99cPadMXCDKvUV8uzj7lLlSFIzAhQwcJtGb0VaVAEEsvzumr64SBWJvw==" ns0:version="0.2.0" />
     </item>
     <item>
       <title>Version 0.2.1 (ndn-cxx version 0.5.1, NFD version 0.5.1, ndn-tools version 0.4)</title>
-      <sparkle:releaseNotesLink>
+      <ns0:releaseNotesLink>
         https://named-data.net/binaries/NFD-Control-Center/release-notes-0.2.1.html
-      </sparkle:releaseNotesLink>
+      </ns0:releaseNotesLink>
       <pubDate>Thu, 9 Feb 2017 15:55:00 +0000</pubDate>
-      <enclosure url="https://named-data.net/binaries/NFD-Control-Center/NDN-0.2.1.dmg"
-                 sparkle:version="0.2.1"
-                 sparkle:dsaSignature="MCwCFAD66xeADU9oA3mzU7/XiGvyuVipAhRcBNwHTXDoyEjo+jR0UJJuAztz8g=="
-                 length="27883199"
-                 type="application/octet-stream" />
+      <enclosure length="27883199" type="application/octet-stream" url="https://named-data.net/binaries/NFD-Control-Center/NDN-0.2.1.dmg" ns0:dsaSignature="MCwCFAD66xeADU9oA3mzU7/XiGvyuVipAhRcBNwHTXDoyEjo+jR0UJJuAztz8g==" ns0:version="0.2.1" />
     </item>
-  </channel>
-</rss>
+  <item>
+<title>Version 0.2.2 (ndn-cxx version 0.5.1-34-g1709aa7, NFD version 0.5.1-38-gd396b61, ndn-tools version 0.4)</title>
+<pubDate>Fri, 17 Mar 2017 00:21:35 -0700</pubDate>
+<ns0:minimumSystemVersion>10.12.0</ns0:minimumSystemVersion>
+<enclosure length="27660612" type="application/octet-stream" url="https://named-data.net/binaries/NDN-Control-Center/NDN-0.2.2.dmg" ns0:dsaSignature="MCwCFF3kJFwME5pngleyBK07TSw6GTDsAhRI2V9KhWpSp0uXussHjGhNHUZihg==" ns0:shortVersionString="0.2.2" ns0:version="0.2.2" />
+<ns0:releaseNotesLink>https://named-data.net/binaries/NDN-Control-Center/release-notes-0.2.2.html</ns0:releaseNotesLink></item>
+</channel>
+</rss>
\ No newline at end of file
diff --git a/src/Info.plist.in b/src/Info.plist.in
index a373b29..7171d1e 100644
--- a/src/Info.plist.in
+++ b/src/Info.plist.in
@@ -5,7 +5,7 @@
     <key>CFBundleDevelopmentRegion</key>
     <string>English</string>
     <key>CFBundleExecutable</key>
-    <string>NFD Control Center</string>
+    <string>NDN Control Center</string>
     <key>CFBundleIconFile</key>
     <string>ndn_app.icns</string>
     <key>CFBundleIdentifier</key>
@@ -13,7 +13,7 @@
     <key>CFBundleInfoDictionaryVersion</key>
     <string>6.0</string>
     <key>CFBundleName</key>
-    <string>NFD Control Center</string>
+    <string>NDN Control Center</string>
     <key>CFBundlePackageType</key>
     <string>APPL</string>
     <key>CFBundleSignature</key>
diff --git a/src/main.qml b/src/main.qml
index c134df4..c73f0a7 100644
--- a/src/main.qml
+++ b/src/main.qml
@@ -6,7 +6,7 @@
 ApplicationWindow {
     visible: false
     id: window
-    title: "NFD Control Center"
+    title: "NDN Control Center"
     minimumWidth: 700
     minimumHeight: 400
 
@@ -40,7 +40,7 @@
                         anchors.rightMargin: 10
                         CheckBox {
                             id: startOnLogin
-                            text: "Launch NFD Control Center on login"
+                            text: "Launch NDN Control Center on login"
                             checked: trayModel.isNccAutoStartEnabled()
                             onCheckedChanged: trayModel.enableDisableNccAutoStart(this.checked)
                         }
@@ -95,7 +95,7 @@
                      anchors.left: parent.left
                      anchors.bottom: parent.bottom
                      Label {
-                         text: "NFD Control Center version:"
+                         text: "NDN Control Center version:"
                          font.pixelSize: 10
                      }
                      Label {
diff --git a/wscript b/wscript
index 575167c..ddf3778 100644
--- a/wscript
+++ b/wscript
@@ -1,7 +1,7 @@
 # -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
-VERSION='0.2.1'
-APPNAME='nfd-control-center'
-APPCAST='https://named-data.net/binaries/NFD-Control-Center/ndn-control-center.xml'
+VERSION='0.2.2'
+APPNAME='ndn-control-center'
+APPCAST='https://named-data.net/binaries/NDN-Control-Center/ndn-control-center.xml'
 
 from waflib import Logs, Utils, Task, TaskGen
 import os
@@ -27,7 +27,7 @@
 
     conf.check_boost(lib="system thread")
 
-    conf.define('RESOURCES_DIR', Utils.subst_vars("${DATAROOTDIR}/nfd-control-center", conf.env))
+    conf.define('RESOURCES_DIR', Utils.subst_vars("${DATAROOTDIR}/ndn-control-center", conf.env))
 
     if Utils.unversioned_sys_platform() == "darwin":
         conf.define('OSX_BUILD', 1)
@@ -47,16 +47,16 @@
         )
 
     if Utils.unversioned_sys_platform() != "darwin":
-        app.target = "nfd-control-center"
+        app.target = "ndn-control-center"
 
         bld(features = "subst",
-             source = 'nfd-control-center.desktop.in',
-             target = 'nfd-control-center.desktop',
-             BINARY = "nfd-control-center",
-             install_path = "${DATAROOTDIR}/nfd-control-center"
+             source = 'ndn-control-center.desktop.in',
+             target = 'ndn-control-center.desktop',
+             BINARY = "ndn-control-center",
+             install_path = "${DATAROOTDIR}/ndn-control-center"
             )
 
-        bld.install_files("${DATAROOTDIR}/nfd-control-center",
+        bld.install_files("${DATAROOTDIR}/ndn-control-center",
                           bld.path.ant_glob(['res/*']))
     else:
         bld(features="subst",
@@ -69,7 +69,7 @@
 
         app.source += bld.path.ant_glob(['src/osx-*.mm', 'src/osx-*.cpp'])
         app.use += " OSX_FOUNDATION OSX_APPKIT OSX_SPARKLE OSX_COREWLAN NDN_TOOLS"
-        app.target = "NFD Control Center"
+        app.target = "NDN Control Center"
         app.mac_app = True
         app.mac_plist = 'src/Info.plist'
         app.mac_files = [i.path_from(bld.path) for i in bld.path.ant_glob('res/**/*', excl='**/*.ai')]
