diff --git a/src/main/java/com/syncleus/ferma/DefaultTraversable.java b/src/main/java/com/syncleus/ferma/DefaultTraversable.java
index 42de30c7d4ee4bde7165fdeafc9bd27c035b8593..ac2c3057479bf14196db86ec0d558270748cd43a 100644
--- a/src/main/java/com/syncleus/ferma/DefaultTraversable.java
+++ b/src/main/java/com/syncleus/ferma/DefaultTraversable.java
@@ -15,15 +15,12 @@
  */
 package com.syncleus.ferma;
 
+import java.util.*;
 import java.util.function.Function;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
 import org.apache.tinkerpop.gremlin.structure.Element;
-import java.util.Iterator;
-import java.util.List;
-import java.util.NoSuchElementException;
-import java.util.Set;
 
 public class DefaultTraversable<PE, E> implements Traversable<PE, E>{
     final private GraphTraversal<PE, E> baseTraversal;
@@ -59,18 +56,26 @@ public class DefaultTraversable<PE, E> implements Traversable<PE, E>{
 
     @Override
     public <N> N nextOrDefault(final Class<N> kind, final N defaultValue) {
-        if (baseTraversal.hasNext())
-            return next(kind);
-        else
+        try {
+            if (baseTraversal.hasNext())
+                return next(kind);
+            else
+                return defaultValue;
+        } catch (IllegalAccessError e) {
             return defaultValue;
+        }
     }
 
     @Override
     public <N> N nextOrDefaultExplicit(final Class<N> kind, final N defaultValue) {
-        if (baseTraversal.hasNext())
-            return nextExplicit(kind);
-        else
+        try {
+            if (baseTraversal.hasNext())
+                return nextExplicit(kind);
+            else
+                return defaultValue;
+        } catch (IllegalAccessError e) {
             return defaultValue;
+        }
     }
 
     @Override
@@ -125,22 +130,30 @@ public class DefaultTraversable<PE, E> implements Traversable<PE, E>{
 
     @Override
     public <N> List<? extends N> next(final int amount, final Class<N> kind) {
-        return Lists.transform((List<Element>) this.baseTraversal.next(amount), new com.google.common.base.Function<Element, N>() {
-            @Override
-            public N apply(final Element input) {
-                return parentGraph.frameElement(input, kind);
-            }
-        });
+        try {
+            return Lists.transform((List<Element>) this.baseTraversal.next(amount), new com.google.common.base.Function<Element, N>() {
+                @Override
+                public N apply(final Element input) {
+                    return parentGraph.frameElement(input, kind);
+                }
+            });
+        } catch (IllegalAccessError e) {
+            return Collections.emptyList();
+        }
     }
 
     @Override
     public <N> List<? extends N> nextExplicit(final int amount, final Class<N> kind) {
-        return Lists.transform((List<Element>) this.baseTraversal.next(amount), new com.google.common.base.Function<Element, N>() {
-            @Override
-            public N apply(final Element input) {
-                return parentGraph.frameElementExplicit(input, kind);
-            }
-        });
+        try {
+            return Lists.transform((List<Element>) this.baseTraversal.next(amount), new com.google.common.base.Function<Element, N>() {
+                @Override
+                public N apply(final Element input) {
+                    return parentGraph.frameElementExplicit(input, kind);
+                }
+            });
+        } catch (IllegalAccessError e) {
+            return Collections.emptyList();
+        }
     }
 
     @Override
@@ -175,22 +188,30 @@ public class DefaultTraversable<PE, E> implements Traversable<PE, E>{
 
     @Override
     public <N> List<? extends N> toList(final Class<N> kind) {
-        return Lists.transform((List<Element>) this.baseTraversal.toList(), new com.google.common.base.Function<Element, N>() {
-            @Override
-            public N apply(final Element input) {
-                return parentGraph.frameElement(input, kind);
-            }
-        });
+        try {
+            return Lists.transform((List<Element>) this.baseTraversal.toList(), new com.google.common.base.Function<Element, N>() {
+                @Override
+                public N apply(final Element input) {
+                    return parentGraph.frameElement(input, kind);
+                }
+            });
+        } catch (IllegalAccessError e) {
+            return Collections.emptyList();
+        }
     }
 
     @Override
     public <N> List<? extends N> toListExplicit(final Class<N> kind) {
-        return Lists.transform((List<Element>) this.baseTraversal.toList(), new com.google.common.base.Function<Element, N>() {
-            @Override
-            public N apply(final Element input) {
-                return parentGraph.frameElementExplicit(input, kind);
-            }
-        });
+        try {
+            return Lists.transform((List<Element>) this.baseTraversal.toList(), new com.google.common.base.Function<Element, N>() {
+                @Override
+                public N apply(final Element input) {
+                    return parentGraph.frameElementExplicit(input, kind);
+                }
+            });
+        } catch (IllegalAccessError e) {
+            return Collections.emptyList();
+        }
     }
 
     @Override