diff --git a/src/org/testng/internal/ClassHelper.java b/src/org/testng/internal/ClassHelper.java
index d933fe1..5b28730 100644
--- a/src/org/testng/internal/ClassHelper.java
+++ b/src/org/testng/internal/ClassHelper.java
@@ -1,12 +1,5 @@
 package org.testng.internal;
 
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.Arrays;
-import java.util.Map;
-import java.util.Set;
-
 import org.testng.IClass;
 import org.testng.IMethodSelector;
 import org.testng.IObjectFactory;
@@ -19,6 +12,13 @@
 import org.testng.junit.IJUnitTestRunner;
 import org.testng.xml.XmlTest;
 
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.util.Arrays;
+import java.util.Map;
+import java.util.Set;
+
 import com.google.inject.internal.Sets;
 
 /**
diff --git a/src/org/testng/internal/TestNGMethodFinder.java b/src/org/testng/internal/TestNGMethodFinder.java
index 431ecc6..d79050b 100755
--- a/src/org/testng/internal/TestNGMethodFinder.java
+++ b/src/org/testng/internal/TestNGMethodFinder.java
@@ -29,8 +29,8 @@
   private static final int AFTER_TEST = 4;
   private static final int BEFORE_CLASS = 5;
   private static final int AFTER_CLASS = 6;
-  private static final int BEFORE_TESTMETHOD = 7;
-  private static final int AFTER_TESTMETHOD = 8;
+  private static final int BEFORE_TEST_METHOD = 7;
+  private static final int AFTER_TEST_METHOD = 8;
   private static final int BEFORE_GROUPS = 9;
   private static final int AFTER_GROUPS = 10;
     
@@ -58,11 +58,11 @@
   }
 
   public ITestNGMethod[] getBeforeTestMethods(Class cls) {
-    return findConfiguration(cls, BEFORE_TESTMETHOD);
+    return findConfiguration(cls, BEFORE_TEST_METHOD);
   }
 
   public ITestNGMethod[] getAfterTestMethods(Class cls) {
-    return findConfiguration(cls, AFTER_TESTMETHOD);
+    return findConfiguration(cls, AFTER_TEST_METHOD);
   }
 
   public ITestNGMethod[] getBeforeSuiteMethods(Class cls) {
@@ -138,11 +138,11 @@
           create = configuration.getAfterTestClass();
           isAfterClass = true;
           break;
-        case BEFORE_TESTMETHOD:
+        case BEFORE_TEST_METHOD:
           create = configuration.getBeforeTestMethod();
           isBeforeTestMethod = true;
           break;
-        case AFTER_TESTMETHOD:
+        case AFTER_TEST_METHOD:
           create = configuration.getAfterTestMethod();
           isAfterTestMethod = true;
           break;
