diff --git a/src/main/java/com/google/gwtorm/client/impl/AbstractAccess.java b/src/main/java/com/google/gwtorm/client/impl/AbstractAccess.java
index e192d30..77e150e 100644
--- a/src/main/java/com/google/gwtorm/client/impl/AbstractAccess.java
+++ b/src/main/java/com/google/gwtorm/client/impl/AbstractAccess.java
@@ -49,33 +49,4 @@
       }
     }
   }
-
-  public final void insert(final Iterable<E> instances) throws OrmException {
-    doInsert(instances);
-  }
-
-  public final void update(final Iterable<E> instances) throws OrmException {
-    doUpdate(instances);
-  }
-
-  public final void upsert(final Iterable<E> instances) throws OrmException {
-    doUpsert(instances);
-  }
-
-  public final void delete(final Iterable<E> instances) throws OrmException {
-    doDelete(instances);
-  }
-
-  protected abstract void doInsert(Iterable<E> instances)
-      throws OrmException;
-
-  protected abstract void doUpdate(Iterable<E> instances)
-      throws OrmException;
-
-  protected abstract void doUpsert(Iterable<E> instances)
-      throws OrmException;
-
-  protected abstract void doDelete(Iterable<E> instances)
-      throws OrmException;
-
 }
diff --git a/src/main/java/com/google/gwtorm/jdbc/JdbcAccess.java b/src/main/java/com/google/gwtorm/jdbc/JdbcAccess.java
index 351e825..08f18e2 100644
--- a/src/main/java/com/google/gwtorm/jdbc/JdbcAccess.java
+++ b/src/main/java/com/google/gwtorm/jdbc/JdbcAccess.java
@@ -154,7 +154,7 @@
   }
 
   @Override
-  protected void doInsert(final Iterable<T> instances) throws OrmException {
+  public void insert(final Iterable<T> instances) throws OrmException {
     try {
       PreparedStatement ps = null;
       try {
@@ -179,7 +179,7 @@
   }
 
   @Override
-  protected void doUpdate(final Iterable<T> instances) throws OrmException {
+  public void update(final Iterable<T> instances) throws OrmException {
     try {
       PreparedStatement ps = null;
       try {
@@ -204,7 +204,7 @@
   }
 
   @Override
-  protected void doUpsert(final Iterable<T> instances) throws OrmException {
+  public void upsert(final Iterable<T> instances) throws OrmException {
     // Assume update first, it will cheaply tell us if the row is missing.
     //
     Collection<T> inserts = null;
@@ -251,12 +251,12 @@
     }
 
     if (inserts != null) {
-      doInsert(inserts);
+      insert(inserts);
     }
   }
 
   @Override
-  protected void doDelete(final Iterable<T> instances) throws OrmException {
+  public void delete(final Iterable<T> instances) throws OrmException {
     try {
       PreparedStatement ps = null;
       try {
