diff --git a/1 b/1
deleted file mode 100644
index ae2f5c4..0000000
--- a/1
+++ /dev/null
@@ -1,13 +0,0 @@
-changes for accumulo.
-# Please enter the commit message for your changes. Lines starting
-# with '#' will be ignored, and an empty message aborts the commit.
-# Explicit paths specified without -i or -o; assuming --only paths...
-# On branch Accumulo
-# Changes to be committed:
-#	modified:   contrib/src/main/java/com/datatorrent/contrib/accumulo/AccumuloOutputOperator.java
-#	modified:   contrib/src/test/java/com/datatorrent/contrib/accumulo/AccumuloInputOperatorTest.java
-#	modified:   contrib/src/test/java/com/datatorrent/contrib/accumulo/AccumuloOutputOperatorTest.java
-#	modified:   contrib/src/test/java/com/datatorrent/contrib/accumulo/AccumuloRowTupleGenerator.java
-#	modified:   contrib/src/test/java/com/datatorrent/contrib/accumulo/AccumuloTestHelper.java
-#	modified:   contrib/src/test/java/com/datatorrent/contrib/accumulo/AccumuloTuple.java
-#
diff --git a/contrib/src/test/java/com/datatorrent/contrib/accumulo/AccumuloOutputOperatorTest.java b/contrib/src/test/java/com/datatorrent/contrib/accumulo/AccumuloOutputOperatorTest.java
index 3a388e9..a4583d0 100644
--- a/contrib/src/test/java/com/datatorrent/contrib/accumulo/AccumuloOutputOperatorTest.java
+++ b/contrib/src/test/java/com/datatorrent/contrib/accumulo/AccumuloOutputOperatorTest.java
@@ -26,11 +26,9 @@
 import com.datatorrent.api.Context.OperatorContext;
 import com.datatorrent.api.DAG;
 import com.datatorrent.common.util.DTThrowable;
-import static com.datatorrent.contrib.accumulo.AccumuloTestHelper.con;
 import com.datatorrent.lib.helper.OperatorContextTestHelper;
 import java.util.ArrayList;
 import org.apache.accumulo.core.client.*;
-import org.apache.accumulo.core.client.mock.MockInstance;
 
 public class AccumuloOutputOperatorTest {
   private static String APP_ID = "AccumuloOutputOperatorTest";
@@ -72,7 +70,7 @@
     expressions.add("getColumnQualifier()");
     expressions.add("getColumnVisibility()");
     expressions.add("getColumnValue()");
-    expressions.add("getTimestamp()");    
+    expressions.add("getTimestamp()");
     atleastOper.setExpressions(expressions);
     ArrayList<String> dataTypes = new ArrayList<String>();
     dataTypes.add("string");
diff --git a/contrib/src/test/java/com/datatorrent/contrib/accumulo/AccumuloTestHelper.java b/contrib/src/test/java/com/datatorrent/contrib/accumulo/AccumuloTestHelper.java
index 201b63d..33f567e 100644
--- a/contrib/src/test/java/com/datatorrent/contrib/accumulo/AccumuloTestHelper.java
+++ b/contrib/src/test/java/com/datatorrent/contrib/accumulo/AccumuloTestHelper.java
@@ -28,6 +28,7 @@
 import org.apache.accumulo.core.client.MutationsRejectedException;
 import org.apache.accumulo.core.client.Scanner;
 import org.apache.accumulo.core.client.TableNotFoundException;
+import org.apache.accumulo.core.client.ZooKeeperInstance;
 import org.apache.accumulo.core.client.admin.TableOperations;
 import org.apache.accumulo.core.data.Key;
 import org.apache.accumulo.core.data.Mutation;
@@ -43,7 +44,7 @@
 
 
 public class AccumuloTestHelper {
-  public static Connector con;
+  static Connector con;
   public static final byte[] colfam0_bytes = "colfam0".getBytes();
   public static final byte[] col0_bytes = "col-0".getBytes();
   private static final Logger logger = LoggerFactory.getLogger(AccumuloTestHelper.class);
@@ -150,8 +151,8 @@
   }
 
   public static void getConnector() {
-    MockInstance instance = new MockInstance();
-    //Instance instance = new ZooKeeperInstance("instance", "127.0.0.1");
+    //MockInstance instance = new MockInstance();
+    Instance instance = new ZooKeeperInstance("instance", "127.0.0.1");
     try {
        logger.debug("connecting..");
        con=instance.getConnector("root","".getBytes());
diff --git a/library/src/main/java/com/datatorrent/lib/db/AbstractTransactionableStoreOutputOperator.java b/library/src/main/java/com/datatorrent/lib/db/AbstractTransactionableStoreOutputOperator.java
index 77f5f8b..c3cf5b7 100644
--- a/library/src/main/java/com/datatorrent/lib/db/AbstractTransactionableStoreOutputOperator.java
+++ b/library/src/main/java/com/datatorrent/lib/db/AbstractTransactionableStoreOutputOperator.java
@@ -22,8 +22,6 @@
 import com.datatorrent.api.DAG;
 import com.datatorrent.api.DefaultInputPort;
 import com.datatorrent.api.annotation.InputPortFieldAnnotation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * This is the base implementation of an output operator,
@@ -103,7 +101,6 @@
   public void beginWindow(long windowId)
   {
     currentWindowId = windowId;
-    super.beginWindow(windowId);
   }
 
   @Override
@@ -126,6 +123,5 @@
    * @param tuple
    */
   public abstract void processTuple(T tuple);
-    private static final transient Logger logger = LoggerFactory.getLogger(AbstractTransactionableStoreOutputOperator.class);
 
 }
