diff --git a/src/package/src/ClassVisitor.js b/src/package/src/ClassVisitor.js
index <HASH>..<HASH> 100644
--- a/src/package/src/ClassVisitor.js
+++ b/src/package/src/ClassVisitor.js
@@ -11,8 +11,14 @@ class ClassVisitor extends EventEmitter {
     let start = process.hrtime();
 
     this.beginVisit(cls);
-    this.visitFields(cls);
-    this.visitMethods(cls);
+
+    if (this.hasListenerBound('visit-field')) {
+      this.visitFields(cls);
+    }
+
+    if (this.hasListenerBound('visit-method')) {
+      this.visitMethods(cls);
+    }
 
     let [elapsedSeconds, elapsedNanos] = process.hrtime(start);
     let elapsed = (elapsedSeconds + (elapsedNanos / 1000000000));
@@ -28,6 +34,10 @@ class ClassVisitor extends EventEmitter {
     this.emit('visit-end', cls, elapsed);
   }
 
+  hasListenerBound(type) {
+    return this.listenerCount(type) > 0;
+  }
+
   visitField(cls, field) {
     this.emit('visit-field', cls, field);
   }
add check for visiting only class members that have events bound