diff --git a/src/main/java/com/intel/jndn/management/Nfdc.java b/src/main/java/com/intel/jndn/management/Nfdc.java
index 1be2d07..74e56b1 100644
--- a/src/main/java/com/intel/jndn/management/Nfdc.java
+++ b/src/main/java/com/intel/jndn/management/Nfdc.java
@@ -169,6 +169,7 @@
       throw new ManagementException(e.getMessage(), e);
     }
   }
+
   /**
    * Retrieve the {@link KeyLocator} for an NFD.
    *
diff --git a/src/main/java/com/intel/jndn/management/enums/FacePersistency.java b/src/main/java/com/intel/jndn/management/enums/FacePersistency.java
index 48aa0bc..da5c15c 100644
--- a/src/main/java/com/intel/jndn/management/enums/FacePersistency.java
+++ b/src/main/java/com/intel/jndn/management/enums/FacePersistency.java
@@ -20,8 +20,8 @@
  * @see <a href="https://redmine.named-data.net/projects/nfd/wiki/FaceMgmt">Face Management</a>
  */
 public enum FacePersistency {
-  NONE(-1), // invalid value
 
+  NONE(-1), // invalid value
   PERSISTENT(0),
   ON_DEMAND(1),
   PERMANENT(2);
diff --git a/src/main/java/com/intel/jndn/management/enums/FaceScope.java b/src/main/java/com/intel/jndn/management/enums/FaceScope.java
index fa584de..148d80f 100644
--- a/src/main/java/com/intel/jndn/management/enums/FaceScope.java
+++ b/src/main/java/com/intel/jndn/management/enums/FaceScope.java
@@ -23,7 +23,6 @@
 public enum FaceScope {
 
   NONE(-1), // invalid value
-
   NON_LOCAL(0),
   LOCAL(1);
 
diff --git a/src/main/java/com/intel/jndn/management/enums/NfdTlv.java b/src/main/java/com/intel/jndn/management/enums/NfdTlv.java
index 253bcbc..716e426 100644
--- a/src/main/java/com/intel/jndn/management/enums/NfdTlv.java
+++ b/src/main/java/com/intel/jndn/management/enums/NfdTlv.java
@@ -67,7 +67,6 @@
   public static final int FaceScope = 132;
   public static final int FacePersistency = 133;
   public static final int LinkType = 134;
-
   public static final int FaceQueryFilter = 150;
   public static final int FaceEventNotification = 192;
   public static final int FaceEventKind = 193;
@@ -75,14 +74,16 @@
   // ForwarderStatus and FaceStatus counters
   // https://redmine.named-data.net/projects/nfd/wiki/ForwarderStatus
   // https://redmine.named-data.net/projects/nfd/wiki/FaceMgmt
+  public static final int NInBytes = 148;
+  public static final int NOutBytes = 149;
   public static final int NInInterests = 144;
   public static final int NInData = 145;
   public static final int NInNacks = 151;
   public static final int NOutInterests = 146;
   public static final int NOutData = 147;
   public static final int NOutNacks = 152;
-  public static final int NInBytes = 148;
-  public static final int NOutBytes = 149;
+  public static final int NSatisfiedInterests = 153;
+  public static final int NUnsatisfiedInterests = 154;
 
   // FIB Management
   // https://redmine.named-data.net/projects/nfd/wiki/FibMgmt
diff --git a/src/main/java/com/intel/jndn/management/enums/RouteFlags.java b/src/main/java/com/intel/jndn/management/enums/RouteFlags.java
index 7cafad4..9b26838 100644
--- a/src/main/java/com/intel/jndn/management/enums/RouteFlags.java
+++ b/src/main/java/com/intel/jndn/management/enums/RouteFlags.java
@@ -22,6 +22,7 @@
  * @see <a href="https://redmine.named-data.net/projects/nfd/wiki/RibMgmt">RIB Management</a>
  */
 public enum RouteFlags {
+
   NONE(0),
   CHILD_INHERIT(1),
   CAPTURE(2);
diff --git a/src/main/java/com/intel/jndn/management/enums/RouteOrigin.java b/src/main/java/com/intel/jndn/management/enums/RouteOrigin.java
index 6fdbb27..2f2a6ec 100644
--- a/src/main/java/com/intel/jndn/management/enums/RouteOrigin.java
+++ b/src/main/java/com/intel/jndn/management/enums/RouteOrigin.java
@@ -19,13 +19,14 @@
  * @see <a href="https://redmine.named-data.net/projects/nfd/wiki/RibMgmt">RIB Management</a>
  */
 public enum RouteOrigin {
+
   NONE(-1),
   APP(0),
   AUTOREG(64),
   CLIENT(65),
   AUTOCONF(66),
   NLSR(128),
-  SELFLEARNING(129),
+  PREFIXANN(129),
   STATIC(255);
 
   private final int value;
@@ -65,8 +66,8 @@
       return "autoconf";
     } else if (value == NLSR.toInteger()) {
       return "nlsr";
-    } else if (value == SELFLEARNING.toInteger()) {
-      return "selflearning";
+    } else if (value == PREFIXANN.toInteger()) {
+      return "prefixann";
     } else if (value == STATIC.toInteger()) {
       return "static";
     } else {
@@ -92,8 +93,8 @@
       return AUTOCONF;
     } else if (value == NLSR.toInteger()) {
       return NLSR;
-    } else if (value == SELFLEARNING.toInteger()) {
-      return SELFLEARNING;
+    } else if (value == PREFIXANN.toInteger()) {
+      return PREFIXANN;
     } else if (value == STATIC.toInteger()) {
       return STATIC;
     } else {
diff --git a/src/main/java/com/intel/jndn/management/enums/Strategies.java b/src/main/java/com/intel/jndn/management/enums/Strategies.java
index b375a7f..fb875bf 100644
--- a/src/main/java/com/intel/jndn/management/enums/Strategies.java
+++ b/src/main/java/com/intel/jndn/management/enums/Strategies.java
@@ -19,13 +19,16 @@
  * A reference list of the strategies available in NFD.
  *
  * @author Andrew Brown <andrew.brown@intel.com>
- * @see <a href="https://redmine.named-data.net/projects/nfd/wiki/StrategyChoice#Strategy">Strategies</a>
+ * @see <a href="https://redmine.named-data.net/projects/nfd/wiki/StrategyChoice#Strategies">Strategies</a>
  */
 public final class Strategies {
+  public static final Name ACCESS = new Name("/localhost/nfd/strategy/access");
+  public static final Name ASF = new Name("/localhost/nfd/strategy/asf");
   public static final Name BEST_ROUTE = new Name("/localhost/nfd/strategy/best-route");
-  public static final Name BROADCAST = new Name("/localhost/nfd/strategy/broadcast");
-  public static final Name CLIENT_CONTROL = new Name("/localhost/nfd/strategy/client-control");
+  public static final Name MULTICAST = new Name("/localhost/nfd/strategy/multicast");
   public static final Name NCC = new Name("/localhost/nfd/strategy/ncc");
+  public static final Name RANDOM = new Name("/localhost/nfd/strategy/random");
+  public static final Name SELF_LEARNING = new Name("/localhost/nfd/strategy/self-learning");
 
   /**
    * Prevent instances of Strategies.
diff --git a/src/test/java/com/intel/jndn/management/NfdcIT.java b/src/test/java/com/intel/jndn/management/NfdcIT.java
index f1deef1..3b0973d 100644
--- a/src/test/java/com/intel/jndn/management/NfdcIT.java
+++ b/src/test/java/com/intel/jndn/management/NfdcIT.java
@@ -173,18 +173,17 @@
     Nfdc.unregister(face, new Name("/my/test/route"), "udp4://127.0.0.1:56363");
   }
 
-  // TODO: restore after fixed bug in MockFace
-//  @Test
-//  public void testFailOfRegister() throws Exception {
-//    exception.expect(ManagementException.class);
-//    Nfdc.register(mockFace, new Name("/my/route/to/app/face"), 333);
-//  }
-//
-//  @Test
-//  public void testFailOfUnregister() throws Exception {
-//    exception.expect(ManagementException.class);
-//    Nfdc.unregister(mockFace, new Name("/my/route/to/app/face"));
-//  }
+  @Test
+  public void testFailOfRegister() throws Exception {
+    exception.expect(ManagementException.class);
+    Nfdc.register(mockFace, new Name("/my/route/to/app/face"), 333);
+  }
+
+  @Test
+  public void testFailOfUnregister() throws Exception {
+    exception.expect(ManagementException.class);
+    Nfdc.unregister(mockFace, new Name("/my/route/to/app/face"));
+  }
 
   @Test
   public void testFailOfCreateFace() throws Exception {
@@ -205,7 +204,7 @@
     List<StrategyChoice> choices = Nfdc.getStrategyList(face);
     int oldSize = choices.size();
 
-    Nfdc.setStrategy(face, prefix, Strategies.CLIENT_CONTROL);
+    Nfdc.setStrategy(face, prefix, Strategies.RANDOM);
     Thread.sleep(1000); // strategy takes a while to register
 
     choices = Nfdc.getStrategyList(face);
@@ -252,7 +251,7 @@
         }
       }
     });
-    Nfdc.setStrategy(mockFace, new Name("/"), Strategies.BROADCAST);
+    Nfdc.setStrategy(mockFace, new Name("/"), Strategies.MULTICAST);
   }
 
   @Test
diff --git a/src/test/java/com/intel/jndn/management/types/ForwarderStatusTest.java b/src/test/java/com/intel/jndn/management/types/ForwarderStatusTest.java
index cc2eafe..6a12d4b 100644
--- a/src/test/java/com/intel/jndn/management/types/ForwarderStatusTest.java
+++ b/src/test/java/com/intel/jndn/management/types/ForwarderStatusTest.java
@@ -13,14 +13,15 @@
  */
 package com.intel.jndn.management.types;
 
-import java.nio.ByteBuffer;
-
 import com.intel.jndn.management.TestHelper;
 import net.named_data.jndn.encoding.EncodingException;
-import static org.junit.Assert.assertEquals;
 import org.junit.Before;
 import org.junit.Test;
 
+import java.nio.ByteBuffer;
+
+import static org.junit.Assert.assertEquals;
+
 /**
  * Test encoding/decoding of ForwarderStatus.
  *
diff --git a/src/test/java/com/intel/jndn/management/types/StrategyChoiceTest.java b/src/test/java/com/intel/jndn/management/types/StrategyChoiceTest.java
index 1940b41..47667a1 100644
--- a/src/test/java/com/intel/jndn/management/types/StrategyChoiceTest.java
+++ b/src/test/java/com/intel/jndn/management/types/StrategyChoiceTest.java
@@ -11,9 +11,9 @@
  * FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
  * more details.
  */
-package com.intel.jndn.management;
+package com.intel.jndn.management.types;
 
-import com.intel.jndn.management.types.StrategyChoice;
+import com.intel.jndn.management.TestHelper;
 import net.named_data.jndn.Name;
 import net.named_data.jndn.encoding.EncodingException;
 import org.junit.Before;
