diff --git a/src/main/java/com/intel/jndn/mock/MeasurableFace.java b/src/main/java/com/intel/jndn/mock/MeasurableFace.java
index c862756..2374995 100644
--- a/src/main/java/com/intel/jndn/mock/MeasurableFace.java
+++ b/src/main/java/com/intel/jndn/mock/MeasurableFace.java
@@ -20,7 +20,7 @@
 import java.util.Collection;
 
 /**
- * Provide API for measuring packet use on a given face
+ * Provide API for measuring packet use on a given face.
  *
  * @author Andrew Brown, andrew.brown@intel.com
  */
diff --git a/src/main/java/com/intel/jndn/mock/MockForwarder.java b/src/main/java/com/intel/jndn/mock/MockForwarder.java
index 84c18bc..5a86624 100644
--- a/src/main/java/com/intel/jndn/mock/MockForwarder.java
+++ b/src/main/java/com/intel/jndn/mock/MockForwarder.java
@@ -132,7 +132,7 @@
   }
 
   /**
-   * Mock-specific API for recording the source and destination of incoming interests
+   * Mock-specific API for recording the source and destination of incoming interests.
    */
   public interface OnInterestReceived {
     /**
diff --git a/src/main/java/com/intel/jndn/mock/forwarder/LocalFibEntry.java b/src/main/java/com/intel/jndn/mock/forwarder/LocalFibEntry.java
index 6d7ce1b..2882402 100644
--- a/src/main/java/com/intel/jndn/mock/forwarder/LocalFibEntry.java
+++ b/src/main/java/com/intel/jndn/mock/forwarder/LocalFibEntry.java
@@ -34,7 +34,8 @@
   private final Face registrationFace;
   private final RegistrationOptions flags;
 
-  public LocalFibEntry(Name prefix, MockForwarder.OnInterestReceived callback, Face registrationFace, RegistrationOptions flags) {
+  public LocalFibEntry(Name prefix, MockForwarder.OnInterestReceived callback, Face registrationFace,
+                       RegistrationOptions flags) {
     this.prefix = prefix;
     this.callback = callback;
     this.registrationFace = registrationFace;
diff --git a/src/main/java/com/intel/jndn/mock/forwarder/OnPrefixRegistration.java b/src/main/java/com/intel/jndn/mock/forwarder/OnPrefixRegistration.java
index 670445a..eda501a 100644
--- a/src/main/java/com/intel/jndn/mock/forwarder/OnPrefixRegistration.java
+++ b/src/main/java/com/intel/jndn/mock/forwarder/OnPrefixRegistration.java
@@ -56,7 +56,9 @@
     LOGGER.info("Received registration request: " + interest.toUri());
     ControlParameters params = decodeParameters(interest);
 
-    MockForwarder.FibEntry entry = new ClientFibEntry(params.getName(), (MockTransport) destinationTransport, params.getForwardingFlags());
+    MockForwarder.FibEntry entry = new ClientFibEntry(params.getName(),
+                                                      (MockTransport) destinationTransport,
+                                                      params.getForwardingFlags());
     fib.add(entry);
     LOGGER.info("Added new route " + params.getName() + " to: " + destinationTransport);
 
diff --git a/src/main/java/com/intel/jndn/mock/forwarder/PitImpl.java b/src/main/java/com/intel/jndn/mock/forwarder/PitImpl.java
index 81eb15f..c89f8d7 100644
--- a/src/main/java/com/intel/jndn/mock/forwarder/PitImpl.java
+++ b/src/main/java/com/intel/jndn/mock/forwarder/PitImpl.java
@@ -24,7 +24,7 @@
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
- * Naive implementation of a pending interest table
+ * Naive implementation of a Pending Interest Table.
  *
  * @author Andrew Brown, andrew.brown@intel.com
  */
