diff --git a/hyracks-storage-am-lsm-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/common/api/ILSMHarness.java b/hyracks-storage-am-lsm-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/common/api/ILSMHarness.java
index 94f53a4..82b702b 100644
--- a/hyracks-storage-am-lsm-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/common/api/ILSMHarness.java
+++ b/hyracks-storage-am-lsm-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/common/api/ILSMHarness.java
@@ -24,42 +24,24 @@
 import edu.uci.ics.hyracks.storage.am.common.api.IIndexOpContext;
 import edu.uci.ics.hyracks.storage.am.common.api.ISearchPredicate;
 import edu.uci.ics.hyracks.storage.am.common.api.IndexException;
-import edu.uci.ics.hyracks.storage.am.common.dataflow.IIndex;
-import edu.uci.ics.hyracks.storage.am.lsm.common.freepage.InMemoryFreePageManager;
-import edu.uci.ics.hyracks.storage.am.lsm.common.impls.LSMHarness;
 
-/**
- * Methods to be implemented by an LSM index, which are called from {@link LSMHarness}.
- * The implementations of the methods below should be thread agnostic.
- * Synchronization of LSM operations like updates/searches/flushes/merges are
- * done by the {@link LSMHarness}. For example, a flush() implementation should only
- * create and return the new on-disk component, ignoring the fact that
- * concurrent searches/updates/merges may be ongoing.
- */
-public interface ILSMHarness extends IIndex {
-    public boolean insertUpdateOrDelete(ITupleReference tuple, IIndexOpContext ictx) throws HyracksDataException,
+public interface ILSMHarness {
+    public void insertUpdateOrDelete(ITupleReference tuple, IIndexOpContext ictx) throws HyracksDataException,
             IndexException;
 
-    public void search(IIndexCursor cursor, List<Object> diskComponents, ISearchPredicate pred, IIndexOpContext ictx,
-            boolean includeMemComponent, AtomicInteger searcherRefCount) throws HyracksDataException, IndexException;
+    public List<Object> search(IIndexCursor cursor, ISearchPredicate pred, IIndexOpContext ctx,
+            boolean includeMemComponent) throws HyracksDataException, IndexException;
 
-    public Object merge(List<Object> mergedComponents) throws HyracksDataException, IndexException;
+    public void closeSearchCursor(AtomicInteger searcherRefCount, boolean includeMemComponent)
+            throws HyracksDataException;
 
-    public void addMergedComponent(Object newComponent, List<Object> mergedComponents);
+    public void merge(ILSMIOOperation operation) throws HyracksDataException, IndexException;
 
-    public void cleanUpAfterMerge(List<Object> mergedComponents) throws HyracksDataException;
+    public void flush(ILSMIOOperation operation) throws HyracksDataException, IndexException;
 
-    public Object flush() throws HyracksDataException, IndexException;
-
-    public void addFlushedComponent(Object index);
-
-    public InMemoryFreePageManager getInMemoryFreePageManager();
-
-    public void resetInMemoryComponent() throws HyracksDataException;
-
-    public List<Object> getDiskComponents();
-
-    public ILSMComponentFinalizer getComponentFinalizer();
+    public void addBulkLoadedComponent(Object index) throws HyracksDataException;
+    
+    public ILSMIndex getIndex();
 
     public ILSMFlushController getFlushController();
 
diff --git a/hyracks-storage-am-lsm-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/common/impls/LSMHarness.java b/hyracks-storage-am-lsm-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/common/impls/LSMHarness.java
index 44f305e..66ea185 100644
--- a/hyracks-storage-am-lsm-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/common/impls/LSMHarness.java
+++ b/hyracks-storage-am-lsm-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/common/impls/LSMHarness.java
@@ -29,6 +29,7 @@
 import edu.uci.ics.hyracks.storage.am.common.api.ISearchPredicate;
 import edu.uci.ics.hyracks.storage.am.common.api.IndexException;
 import edu.uci.ics.hyracks.storage.am.lsm.common.api.ILSMFlushController;
+import edu.uci.ics.hyracks.storage.am.lsm.common.api.ILSMHarness;
 import edu.uci.ics.hyracks.storage.am.lsm.common.api.ILSMIOOperation;
 import edu.uci.ics.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback;
 import edu.uci.ics.hyracks.storage.am.lsm.common.api.ILSMIOOperationScheduler;
@@ -46,7 +47,7 @@
  * During a merge, all operations (except another merge) can proceed concurrently.
  * A merge and a flush can proceed concurrently.
  */
-public class LSMHarness {
+public class LSMHarness implements ILSMHarness {
     protected final Logger LOGGER = Logger.getLogger(LSMHarness.class.getName());
     protected static final long AFTER_MERGE_CLEANUP_SLEEP = 100;
 
@@ -221,6 +222,7 @@
         isMerging.set(false);
     }
 
+    @Override
     public void closeSearchCursor(AtomicInteger searcherRefCount, boolean includeMemComponent)
             throws HyracksDataException {
         // If the in-memory Tree was not included in the search, then we don't
@@ -261,4 +263,5 @@
     public ILSMIndex getIndex() {
         return lsmIndex;
     }
+
 }
