diff --git a/src/main/java/net/onrc/onos/core/datastore/IKVClient.java b/src/main/java/net/onrc/onos/core/datastore/IKVClient.java
index 2a7d4f5..d3129bc 100644
--- a/src/main/java/net/onrc/onos/core/datastore/IKVClient.java
+++ b/src/main/java/net/onrc/onos/core/datastore/IKVClient.java
@@ -10,6 +10,14 @@
  */
 public interface IKVClient {
 
+    /**
+     * Gets a table for name {@code tableName}.
+     *
+     * Table will be created, if it does not exist.
+     *
+     * @param tableName name of the table
+     * @return {@link IKVTable} for {@code tableName}
+     */
     public IKVTable getTable(final String tableName);
 
     /**
@@ -113,22 +121,54 @@
     public Iterable<IKVEntry> getAllEntries(IKVTableID tableId);
 
     /**
+     * Creates a {@code IMultiEntryOperation}.
+     *
      * @return IMultiOpEntry for this operation
      * @see #create(IKVTableID, byte[], byte[])
      */
     public IMultiEntryOperation createOp(IKVTableID tableId, byte[] key, byte[] value);
 
+    /**
+     * Creates a {@code IMultiEntryOperation}.
+     *
+     * @return IMultiOpEntry for this operation
+     * @see #forceCreate(IKVTableID, byte[], byte[])
+     */
     public IMultiEntryOperation forceCreateOp(IKVTableID tableId, byte[] key,
                                               byte[] value);
 
+    /**
+     * Creates a {@code IMultiEntryOperation}.
+     *
+     * @return IMultiOpEntry for this operation
+     * @see #read(IKVTableID, byte[])
+     */
     public IMultiEntryOperation readOp(IKVTableID tableId, byte[] key);
 
+    /**
+     * Creates a {@code IMultiEntryOperation}.
+     *
+     * @return IMultiOpEntry for this operation
+     * @see #update(IKVTableID, byte[], byte[], long)
+     */
     public IMultiEntryOperation updateOp(IKVTableID tableId, byte[] key, byte[] value,
                                          long version);
 
+    /**
+     * Creates a {@code IMultiEntryOperation}.
+     *
+     * @return IMultiOpEntry for this operation
+     * @see #delete(IKVTableID, byte[], long)
+     */
     public IMultiEntryOperation deleteOp(IKVTableID tableId, byte[] key, byte[] value,
                                          long version);
 
+    /**
+     * Creates a {@code IMultiEntryOperation}.
+     *
+     * @return IMultiOpEntry for this operation
+     * @see #forceDelete(IKVTableID, byte[])
+     */
     public IMultiEntryOperation forceDeleteOp(IKVTableID tableId, byte[] key);
 
     /**
@@ -209,6 +249,8 @@
     /**
      * Version number which represents that the object does not exist, or has
      * never been read the DB before.
+     *
+     * @return Version number which represents that the object does not exist
      */
     public long getVersionNonexistant();
 
diff --git a/src/main/java/net/onrc/onos/core/datastore/utils/KryoSerializer.java b/src/main/java/net/onrc/onos/core/datastore/utils/KryoSerializer.java
index bcc2736..26d4fd1 100644
--- a/src/main/java/net/onrc/onos/core/datastore/utils/KryoSerializer.java
+++ b/src/main/java/net/onrc/onos/core/datastore/utils/KryoSerializer.java
@@ -1,5 +1,7 @@
 package net.onrc.onos.core.datastore.utils;
 
+import javax.annotation.concurrent.ThreadSafe;
+
 import net.onrc.onos.core.datastore.DataStoreClient;
 
 import com.esotericsoftware.kryo.io.Input;
@@ -8,11 +10,17 @@
 /**
  * {@link Serializer} implementation using Kryo.
  */
+@ThreadSafe
 public final class KryoSerializer
             implements Serializer {
 
     private final ThreadLocalKryo kryo;
 
+    /**
+     * Thread safe Serializer implementation using Kryo.
+     *
+     * @param expectedTypes list of classes expected to be serialized
+     */
     public KryoSerializer(Class<?>... expectedTypes) {
         kryo = new ThreadLocalKryo(expectedTypes);
     }
