Reorganize validation test packages (#716)

* Use module names as package names
* Merge previously separate filter validation tests
* Move non-version specific tests to org.jacoco.core.test
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ImplicitDefaultConstructorTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ImplicitDefaultConstructorTest.java
deleted file mode 100644
index 09872e8..0000000
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ImplicitDefaultConstructorTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2018 Mountainminds GmbH & Co. KG and Contributors
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Marc R. Hoffmann - initial API and implementation
- *    
- *******************************************************************************/
-package org.jacoco.core.test.validation;
-
-import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.validation.targets.Target06;
-import org.junit.Test;
-
-/**
- * Test of a implicit default constructor.
- *
- * @see PrivateEmptyDefaultConstructorTest
- */
-public class ImplicitDefaultConstructorTest extends ValidationTestBase {
-
-	public ImplicitDefaultConstructorTest() {
-		super(Target06.class);
-	}
-
-	@Test
-	public void testCoverageResult() {
-
-		assertLine("classdef", ICounter.FULLY_COVERED);
-
-	}
-
-}
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/PrivateEmptyDefaultConstructorTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/PrivateEmptyDefaultConstructorTest.java
deleted file mode 100644
index 1d144b7..0000000
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/PrivateEmptyDefaultConstructorTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2018 Mountainminds GmbH & Co. KG and Contributors
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Marc R. Hoffmann - initial API and implementation
- *    
- *******************************************************************************/
-package org.jacoco.core.test.validation;
-
-import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.validation.targets.Target07;
-import org.junit.Test;
-
-/**
- * Test of a private empty default constructor.
- *
- * @see ImplicitDefaultConstructorTest
- */
-public class PrivateEmptyDefaultConstructorTest extends ValidationTestBase {
-
-	public PrivateEmptyDefaultConstructorTest() {
-		super(Target07.class);
-	}
-
-	@Test
-	public void testCoverageResult() {
-
-		assertLine("classdef", ICounter.EMPTY);
-		assertLine("super", ICounter.EMPTY);
-		assertLine("constructor", ICounter.EMPTY);
-
-	}
-
-}
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/AnnotationInitializerTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/AnnotationInitializerTest.java
similarity index 85%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/AnnotationInitializerTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/AnnotationInitializerTest.java
index 60a3833..7286cd1 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/AnnotationInitializerTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/AnnotationInitializerTest.java
@@ -9,10 +9,11 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java5;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.validation.targets.AnnotationInitializer;
+import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java5.targets.AnnotationInitializerTarget;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -23,7 +24,7 @@
 public class AnnotationInitializerTest extends ValidationTestBase {
 
 	public AnnotationInitializerTest() {
-		super(AnnotationInitializer.class);
+		super(AnnotationInitializerTarget.class);
 	}
 
 	@Override
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/BadCycleClassTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/BadCycleClassTest.java
similarity index 84%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/BadCycleClassTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/BadCycleClassTest.java
index aa646dd..da53f5a 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/BadCycleClassTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/BadCycleClassTest.java
@@ -9,10 +9,11 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java5;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.validation.targets.BadCycleClass;
+import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java5.targets.BadCycleClassTarget;
 import org.junit.Test;
 
 /**
@@ -21,7 +22,7 @@
 public class BadCycleClassTest extends ValidationTestBase {
 
 	public BadCycleClassTest() throws Exception {
-		super(BadCycleClass.class);
+		super(BadCycleClassTarget.class);
 	}
 
 	@Test
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/BooleanExpressionsTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/BooleanExpressionsTest.java
similarity index 91%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/BooleanExpressionsTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/BooleanExpressionsTest.java
index 64dee47..f91e1c1 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/BooleanExpressionsTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/BooleanExpressionsTest.java
@@ -9,10 +9,11 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java5;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.validation.targets.Target02;
+import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java5.targets.BooleanExpressionsTarget;
 import org.junit.Test;
 
 /**
@@ -21,7 +22,7 @@
 public class BooleanExpressionsTest extends ValidationTestBase {
 
 	public BooleanExpressionsTest() {
-		super(Target02.class);
+		super(BooleanExpressionsTarget.class);
 	}
 
 	@Test
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ClassInitializerTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ClassInitializerTest.java
similarity index 84%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ClassInitializerTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ClassInitializerTest.java
index f87e705..8df6e8d 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ClassInitializerTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ClassInitializerTest.java
@@ -9,10 +9,11 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java5;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.validation.targets.Target05;
+import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java5.targets.ClassInitializerTarget;
 import org.junit.Test;
 
 /**
@@ -21,7 +22,7 @@
 public class ClassInitializerTest extends ValidationTestBase {
 
 	public ClassInitializerTest() {
-		super(Target05.class);
+		super(ClassInitializerTarget.class);
 	}
 
 	@Test
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/ConstructorTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ConstructorsTest.java
similarity index 83%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/ConstructorTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ConstructorsTest.java
index 1dffc68..4c3ed6a 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/ConstructorTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ConstructorsTest.java
@@ -9,21 +9,21 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.filter;
+package org.jacoco.core.test.validation.java5;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.filter.targets.Constructor;
 import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java5.targets.ConstructorsTarget;
 import org.junit.Test;
 
 /**
- * Test of filtering of a bytecode that is generated for a private empty
- * constructors that do not have no arguments.
+ * Tests for different constructors. Private empty constructors without
+ * arguments are filtered.
  */
-public class ConstructorTest extends ValidationTestBase {
+public class ConstructorsTest extends ValidationTestBase {
 
-	public ConstructorTest() {
-		super(Constructor.class);
+	public ConstructorsTest() {
+		super(ConstructorsTarget.class);
 	}
 
 	@Test
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ProbesBeforeSuperConstructorTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ControlStructureBeforeSuperConstructorTest.java
similarity index 66%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ProbesBeforeSuperConstructorTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ControlStructureBeforeSuperConstructorTest.java
index 88b1ae5..d381887 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ProbesBeforeSuperConstructorTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ControlStructureBeforeSuperConstructorTest.java
@@ -9,19 +9,20 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java5;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.validation.targets.Target10;
+import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java5.targets.ControlStructureBeforeSuperConstructorTarget;
 import org.junit.Test;
 
 /**
  * Test of probes before the super constructor call.
  */
-public class ProbesBeforeSuperConstructorTest extends ValidationTestBase {
+public class ControlStructureBeforeSuperConstructorTest extends ValidationTestBase {
 
-	public ProbesBeforeSuperConstructorTest() {
-		super(Target10.class);
+	public ControlStructureBeforeSuperConstructorTest() {
+		super(ControlStructureBeforeSuperConstructorTarget.class);
 	}
 
 	@Test
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ControlStructuresTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ControlStructuresTest.java
similarity index 95%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ControlStructuresTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ControlStructuresTest.java
index 37db4c1..768312f 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ControlStructuresTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ControlStructuresTest.java
@@ -9,10 +9,11 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java5;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.validation.targets.Target01;
+import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java5.targets.ControlStructuresTarget;
 import org.junit.Test;
 
 /**
@@ -21,7 +22,7 @@
 public class ControlStructuresTest extends ValidationTestBase {
 
 	public ControlStructuresTest() {
-		super(Target01.class);
+		super(ControlStructuresTarget.class);
 	}
 
 	@Test
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/CyclomaticComplexityTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/CyclomaticComplexityTest.java
similarity index 99%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/CyclomaticComplexityTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/CyclomaticComplexityTest.java
index 122612c..b7b1128 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/CyclomaticComplexityTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/CyclomaticComplexityTest.java
@@ -9,7 +9,7 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java5;
 
 import static org.jacoco.core.test.validation.targets.Stubs.nop;
 import static org.junit.Assert.assertEquals;
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/EnumConstructorTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/EnumConstructorTest.java
similarity index 72%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/EnumConstructorTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/EnumConstructorTest.java
index fd88787..2865270 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/EnumConstructorTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/EnumConstructorTest.java
@@ -9,11 +9,11 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.filter;
+package org.jacoco.core.test.validation.java5;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.filter.targets.EnumConstructor;
 import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java5.targets.EnumConstructorTarget;
 import org.junit.Test;
 
 /**
@@ -22,11 +22,11 @@
 public class EnumConstructorTest extends ValidationTestBase {
 
 	public EnumConstructorTest() {
-		super(EnumConstructor.class);
+		super(EnumConstructorTarget.class);
 	}
 
 	/**
-	 * {@link EnumConstructor.ImplicitConstructor}
+	 * {@link EnumConstructorTarget.ImplicitConstructor}
 	 */
 	@Test
 	public void implicit_constructor_should_be_filtered() {
@@ -35,7 +35,7 @@
 	}
 
 	/**
-	 * {@link EnumConstructor.ExplicitNonEmptyConstructor#ExplicitNonEmptyConstructor()}
+	 * {@link EnumConstructorTarget.ExplicitNonEmptyConstructor#ExplicitNonEmptyConstructor()}
 	 */
 	@Test
 	public void explicit_non_empty_constructor_should_not_be_filtered() {
@@ -43,7 +43,7 @@
 	}
 
 	/**
-	 * {@link EnumConstructor.ExplicitEmptyConstructor#ExplicitEmptyConstructor()}
+	 * {@link EnumConstructorTarget.ExplicitEmptyConstructor#ExplicitEmptyConstructor()}
 	 */
 	@Test
 	public void explicit_empty_constructor_should_be_filtered() {
@@ -52,11 +52,12 @@
 	}
 
 	/**
-	 * {@link EnumConstructor.ExplicitEmptyConstructor#ExplicitEmptyConstructor(Object)}
+	 * {@link EnumConstructorTarget.ExplicitEmptyConstructor#ExplicitEmptyConstructor(Object)}
 	 */
 	@Test
 	public void explicit_empty_constructor_with_parameters_should_not_be_filtered() {
-		assertLine("explicitEmptyConstructorWithParameter", ICounter.NOT_COVERED);
+		assertLine("explicitEmptyConstructorWithParameter",
+				ICounter.NOT_COVERED);
 	}
 
 }
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/EnumImplicitMethodsTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/EnumImplicitMethodsTest.java
similarity index 84%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/EnumImplicitMethodsTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/EnumImplicitMethodsTest.java
index fbd9e54..0f6a866 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/EnumImplicitMethodsTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/EnumImplicitMethodsTest.java
@@ -9,10 +9,11 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java5;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.validation.targets.EnumImplicitMethods;
+import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java5.targets.EnumImplicitMethodsTarget;
 import org.junit.Test;
 
 /**
@@ -21,7 +22,7 @@
 public class EnumImplicitMethodsTest extends ValidationTestBase {
 
     public EnumImplicitMethodsTest() {
-        super(EnumImplicitMethods.class);
+        super(EnumImplicitMethodsTarget.class);
     }
 
     @Test
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/EnumSwitchTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/EnumSwitchTest.java
similarity index 88%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/EnumSwitchTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/EnumSwitchTest.java
index 3708899..fa3c44c 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/EnumSwitchTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/EnumSwitchTest.java
@@ -9,11 +9,11 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.filter;
+package org.jacoco.core.test.validation.java5;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.filter.targets.EnumSwitch;
 import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java5.targets.EnumSwitchTarget;
 import org.junit.Test;
 
 /**
@@ -23,7 +23,7 @@
 public class EnumSwitchTest extends ValidationTestBase {
 
 	public EnumSwitchTest() {
-		super(EnumSwitch.class);
+		super(EnumSwitchTarget.class);
 	}
 
 	@Test
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ExceptionsTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ExceptionsTest.java
similarity index 96%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ExceptionsTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ExceptionsTest.java
index c68bd37..15e4716 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ExceptionsTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ExceptionsTest.java
@@ -9,10 +9,11 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java5;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.validation.targets.Target03;
+import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java5.targets.ExceptionsTarget;
 import org.junit.Test;
 
 /**
@@ -21,7 +22,7 @@
 public class ExceptionsTest extends ValidationTestBase {
 
 	public ExceptionsTest() {
-		super(Target03.class);
+		super(ExceptionsTarget.class);
 	}
 
 	@Test
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ExplicitInitialFrameTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ExplicitInitialFrameTest.java
similarity index 79%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ExplicitInitialFrameTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ExplicitInitialFrameTest.java
index 1c0a02f..b04c1a6 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ExplicitInitialFrameTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ExplicitInitialFrameTest.java
@@ -9,10 +9,11 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java5;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.validation.targets.Target11;
+import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java5.targets.ExplicitInitialFrameTarget;
 import org.junit.Test;
 
 /**
@@ -21,7 +22,7 @@
 public class ExplicitInitialFrameTest extends ValidationTestBase {
 
 	public ExplicitInitialFrameTest() {
-		super(Target11.class);
+		super(ExplicitInitialFrameTarget.class);
 	}
 
 	@Test
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/FieldInitializationInTwoConstructorsTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/FieldInitializationInTwoConstructorsTest.java
similarity index 80%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/FieldInitializationInTwoConstructorsTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/FieldInitializationInTwoConstructorsTest.java
index 6896bf6..6be37f4 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/FieldInitializationInTwoConstructorsTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/FieldInitializationInTwoConstructorsTest.java
@@ -9,10 +9,11 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java5;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.validation.targets.Target09;
+import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java5.targets.FieldInitializationInTwoConstructorsTarget;
 import org.junit.Test;
 
 /**
@@ -22,7 +23,7 @@
 		ValidationTestBase {
 
 	public FieldInitializationInTwoConstructorsTest() {
-		super(Target09.class);
+		super(FieldInitializationInTwoConstructorsTarget.class);
 	}
 
 	@Test
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/FinallyTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/FinallyTest.java
similarity index 90%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/FinallyTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/FinallyTest.java
index 2aa9756..8531a50 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/FinallyTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/FinallyTest.java
@@ -9,7 +9,7 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.filter;
+package org.jacoco.core.test.validation.java5;
 
 import static org.junit.Assert.assertEquals;
 
@@ -20,8 +20,8 @@
 import org.jacoco.core.analysis.ICounter;
 import org.jacoco.core.internal.BytecodeVersion;
 import org.jacoco.core.test.TargetLoader;
-import org.jacoco.core.test.filter.targets.Finally;
 import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java5.targets.FinallyTarget;
 import org.junit.Test;
 import org.objectweb.asm.ClassReader;
 import org.objectweb.asm.Opcodes;
@@ -36,11 +36,11 @@
 public class FinallyTest extends ValidationTestBase {
 
 	public FinallyTest() {
-		super(Finally.class);
+		super(FinallyTarget.class);
 	}
 
 	/**
-	 * {@link Finally#example(boolean)}
+	 * {@link FinallyTarget#example(boolean)}
 	 */
 	@Test
 	public void example() {
@@ -59,16 +59,16 @@
 	 * GOTO instructions at the end of duplicates of finally block might have
 	 * line number of a last instruction of finally block and hence lead to
 	 * unexpected coverage results, like for example in case of ECJ for
-	 * {@link Finally#catchNotExecuted()}, {@link Finally#emptyCatch()}. So we
-	 * decided to ignore them, even if they can correspond to a real break
-	 * statement.
+	 * {@link FinallyTarget#catchNotExecuted()},
+	 * {@link FinallyTarget#emptyCatch()}. So we decided to ignore them, even if
+	 * they can correspond to a real break statement.
 	 * <p>
 	 * See also <a href=
 	 * "https://bugs.openjdk.java.net/browse/JDK-8180141">JDK-8180141</a> and
 	 * <a href=
 	 * "https://bugs.openjdk.java.net/browse/JDK-7008643">JDK-7008643</a>.
 	 * <p>
-	 * {@link Finally#breakStatement()}
+	 * {@link FinallyTarget#breakStatement()}
 	 */
 	@Test
 	public void breakStatement() {
@@ -79,7 +79,7 @@
 	}
 
 	/**
-	 * {@link Finally#catchNotExecuted()}
+	 * {@link FinallyTarget#catchNotExecuted()}
 	 */
 	@Test
 	public void catchNotExecuted() {
@@ -90,7 +90,7 @@
 	}
 
 	/**
-	 * {@link Finally#emptyCatch()}
+	 * {@link FinallyTarget#emptyCatch()}
 	 */
 	@Test
 	public void emptyCatch() {
@@ -100,7 +100,7 @@
 	}
 
 	/**
-	 * {@link Finally#twoRegions()}
+	 * {@link FinallyTarget#twoRegions()}
 	 */
 	@Test
 	public void twoRegions() {
@@ -123,7 +123,7 @@
 	}
 
 	/**
-	 * {@link Finally#nested()}
+	 * {@link FinallyTarget#nested()}
 	 */
 	@Test
 	public void nested() {
@@ -143,7 +143,7 @@
 	}
 
 	/**
-	 * {@link Finally#emptyTry()}
+	 * {@link FinallyTarget#emptyTry()}
 	 */
 	@Test
 	public void emptyTry() {
@@ -159,7 +159,7 @@
 	}
 
 	/**
-	 * {@link Finally#alwaysCompletesAbruptly()}
+	 * {@link FinallyTarget#alwaysCompletesAbruptly()}
 	 */
 	@Test
 	public void alwaysCompletesAbruptly() {
@@ -179,7 +179,7 @@
 	 */
 	@Test
 	public void gotos() throws IOException {
-		byte[] b = TargetLoader.getClassDataAsBytes(Finally.class);
+		byte[] b = TargetLoader.getClassDataAsBytes(FinallyTarget.class);
 		b = BytecodeVersion.downgradeIfNeeded(BytecodeVersion.get(b), b);
 
 		final ClassNode classNode = new ClassNode();
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/FramesTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/FramesTest.java
similarity index 63%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/FramesTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/FramesTest.java
index 9ab062b..2d502c3 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/FramesTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/FramesTest.java
@@ -9,7 +9,7 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java5;
 
 import static org.junit.Assert.assertEquals;
 
@@ -23,18 +23,17 @@
 import org.jacoco.core.runtime.IRuntime;
 import org.jacoco.core.runtime.SystemPropertiesRuntime;
 import org.jacoco.core.test.TargetLoader;
-import org.jacoco.core.test.validation.targets.Target01;
-import org.jacoco.core.test.validation.targets.Target02;
-import org.jacoco.core.test.validation.targets.Target03;
-import org.jacoco.core.test.validation.targets.Target04;
-import org.jacoco.core.test.validation.targets.Target05;
-import org.jacoco.core.test.validation.targets.Target06;
-import org.jacoco.core.test.validation.targets.Target07;
-import org.jacoco.core.test.validation.targets.Target08;
-import org.jacoco.core.test.validation.targets.Target09;
-import org.jacoco.core.test.validation.targets.Target10;
-import org.jacoco.core.test.validation.targets.Target11;
-import org.jacoco.core.test.validation.targets.Target12;
+import org.jacoco.core.test.validation.java5.targets.BooleanExpressionsTarget;
+import org.jacoco.core.test.validation.java5.targets.ClassInitializerTarget;
+import org.jacoco.core.test.validation.java5.targets.ConstructorsTarget;
+import org.jacoco.core.test.validation.java5.targets.ControlStructureBeforeSuperConstructorTarget;
+import org.jacoco.core.test.validation.java5.targets.ControlStructuresTarget;
+import org.jacoco.core.test.validation.java5.targets.ExceptionsTarget;
+import org.jacoco.core.test.validation.java5.targets.ExplicitInitialFrameTarget;
+import org.jacoco.core.test.validation.java5.targets.FieldInitializationInTwoConstructorsTarget;
+import org.jacoco.core.test.validation.java5.targets.ImplicitFieldInitializationTarget;
+import org.jacoco.core.test.validation.java5.targets.InterfaceClassInitializerTarget;
+import org.jacoco.core.test.validation.java5.targets.StructuredLockingTarget;
 import org.junit.Test;
 import org.objectweb.asm.ClassReader;
 import org.objectweb.asm.ClassVisitor;
@@ -117,63 +116,59 @@
 	}
 
 	@Test
-	public void testTarget01() throws IOException {
-		testFrames(Target01.class);
+	public void boolean_expressions() throws IOException {
+		testFrames(BooleanExpressionsTarget.class);
 	}
 
 	@Test
-	public void testTarget02() throws IOException {
-		testFrames(Target02.class);
+	public void class_initializer() throws IOException {
+		testFrames(ClassInitializerTarget.class);
 	}
 
 	@Test
-	public void testTarget03() throws IOException {
-		testFrames(Target03.class);
+	public void constructors() throws IOException {
+		testFrames(ConstructorsTarget.class);
 	}
 
 	@Test
-	public void testTarget04() throws IOException {
-		testFrames(Target04.class);
+	public void control_structures() throws IOException {
+		testFrames(ControlStructuresTarget.class);
 	}
 
 	@Test
-	public void testTarget05() throws IOException {
-		testFrames(Target05.class);
+	public void control_structure_before_super_constructor()
+			throws IOException {
+		testFrames(ControlStructureBeforeSuperConstructorTarget.class);
 	}
 
 	@Test
-	public void testTarget06() throws IOException {
-		testFrames(Target06.class);
+	public void exceptions() throws IOException {
+		testFrames(ExceptionsTarget.class);
 	}
 
 	@Test
-	public void testTarget07() throws IOException {
-		testFrames(Target07.class);
+	public void explicit_initial_frame() throws IOException {
+		testFrames(ExplicitInitialFrameTarget.class);
 	}
 
 	@Test
-	public void testTarget08() throws IOException {
-		testFrames(Target08.class);
+	public void field_initialization_in_two_constructors() throws IOException {
+		testFrames(FieldInitializationInTwoConstructorsTarget.class);
 	}
 
 	@Test
-	public void testTarget09() throws IOException {
-		testFrames(Target09.class);
+	public void implicit_field_initialization() throws IOException {
+		testFrames(ImplicitFieldInitializationTarget.class);
 	}
 
 	@Test
-	public void testTarget10() throws IOException {
-		testFrames(Target10.class);
+	public void interface_class_initializer() throws IOException {
+		testFrames(InterfaceClassInitializerTarget.class);
 	}
 
 	@Test
-	public void testTarget11() throws IOException {
-		testFrames(Target11.class);
-	}
-
-	@Test
-	public void testTarget12() throws IOException {
-		testFrames(Target12.class);
+	public void structured_locking() throws IOException {
+		testFrames(StructuredLockingTarget.class);
 	}
 
 }
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ImplicitFieldInitializationTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ImplicitFieldInitializationTest.java
similarity index 81%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ImplicitFieldInitializationTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ImplicitFieldInitializationTest.java
index 769593d..d87d039 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ImplicitFieldInitializationTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/ImplicitFieldInitializationTest.java
@@ -9,10 +9,11 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java5;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.validation.targets.Target08;
+import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java5.targets.ImplicitFieldInitializationTarget;
 import org.junit.Test;
 
 /**
@@ -21,7 +22,7 @@
 public class ImplicitFieldInitializationTest extends ValidationTestBase {
 
 	public ImplicitFieldInitializationTest() {
-		super(Target08.class);
+		super(ImplicitFieldInitializationTarget.class);
 	}
 
 	@Test
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/InterfaceClassInitializerTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/InterfaceClassInitializerTest.java
similarity index 83%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/InterfaceClassInitializerTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/InterfaceClassInitializerTest.java
index 5675dbb..9e13deb 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/InterfaceClassInitializerTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/InterfaceClassInitializerTest.java
@@ -9,10 +9,11 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java5;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.validation.targets.Target04;
+import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java5.targets.InterfaceClassInitializerTarget;
 import org.junit.Test;
 
 /**
@@ -21,7 +22,7 @@
 public class InterfaceClassInitializerTest extends ValidationTestBase {
 
 	public InterfaceClassInitializerTest() {
-		super(Target04.class);
+		super(InterfaceClassInitializerTarget.class);
 	}
 
 	@Override
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/StructuredLockingTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/StructuredLockingTest.java
similarity index 93%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/StructuredLockingTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/StructuredLockingTest.java
index 823ab78..8243c4b 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/StructuredLockingTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/StructuredLockingTest.java
@@ -9,7 +9,7 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java5;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -24,7 +24,7 @@
 import org.jacoco.core.runtime.IRuntime;
 import org.jacoco.core.runtime.SystemPropertiesRuntime;
 import org.jacoco.core.test.TargetLoader;
-import org.jacoco.core.test.validation.targets.Target12;
+import org.jacoco.core.test.validation.java5.targets.StructuredLockingTarget;
 import org.junit.Test;
 import org.objectweb.asm.ClassReader;
 import org.objectweb.asm.Opcodes;
@@ -55,12 +55,9 @@
 public class StructuredLockingTest {
 
 	@Test
-	public void testTarget12() throws Exception {
-		testMonitorExit(Target12.class);
-	}
-
-	private void testMonitorExit(Class<?> target) throws Exception {
-		assertStructuredLocking(TargetLoader.getClassDataAsBytes(target));
+	public void testMonitorExit() throws Exception {
+		assertStructuredLocking(TargetLoader
+				.getClassDataAsBytes(StructuredLockingTarget.class));
 	}
 
 	private void assertStructuredLocking(byte[] source) throws Exception {
@@ -89,7 +86,8 @@
 			}
 
 			@Override
-			protected Frame<BasicValue> newFrame(Frame<? extends BasicValue> src) {
+			protected Frame<BasicValue> newFrame(
+					Frame<? extends BasicValue> src) {
 				return new LockFrame(src);
 			}
 		};
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/SynchronizedTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/SynchronizedTest.java
similarity index 87%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/SynchronizedTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/SynchronizedTest.java
index 2d0fa97..c1498be 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/SynchronizedTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/SynchronizedTest.java
@@ -9,11 +9,11 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.filter;
+package org.jacoco.core.test.validation.java5;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.filter.targets.Synchronized;
 import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java5.targets.SynchronizedTarget;
 import org.junit.Test;
 
 /**
@@ -23,11 +23,11 @@
 public class SynchronizedTest extends ValidationTestBase {
 
 	public SynchronizedTest() {
-		super(Synchronized.class);
+		super(SynchronizedTarget.class);
 	}
 
 	/**
-	 * {@link Synchronized#normal()}
+	 * {@link SynchronizedTarget#normal()}
 	 */
 	@Test
 	public void normal() {
@@ -45,7 +45,7 @@
 	}
 
 	/**
-	 * {@link Synchronized#explicitException()}
+	 * {@link SynchronizedTarget#explicitException()}
 	 */
 	@Test
 	public void explicitException() {
@@ -56,7 +56,7 @@
 	}
 
 	/**
-	 * {@link Synchronized#implicitException()}
+	 * {@link SynchronizedTarget#implicitException()}
 	 */
 	@Test
 	public void implicitException() {
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/SyntheticTest.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/SyntheticTest.java
similarity index 87%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/SyntheticTest.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/SyntheticTest.java
index f439736..f1f8372 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/SyntheticTest.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/SyntheticTest.java
@@ -9,11 +9,11 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.filter;
+package org.jacoco.core.test.validation.java5;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.filter.targets.Synthetic;
 import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java5.targets.SyntheticTarget;
 import org.junit.Test;
 
 /**
@@ -22,7 +22,7 @@
 public class SyntheticTest extends ValidationTestBase {
 
 	public SyntheticTest() {
-		super(Synthetic.class);
+		super(SyntheticTarget.class);
 	}
 
 	@Test
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/AnnotationInitializer.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/AnnotationInitializerTarget.java
similarity index 86%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/AnnotationInitializer.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/AnnotationInitializerTarget.java
index f7b9e0a..95171b3 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/AnnotationInitializer.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/AnnotationInitializerTarget.java
@@ -9,12 +9,12 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
+package org.jacoco.core.test.validation.java5.targets;
 
 /**
  * This test target is an annotation with an initializer.
  */
-public @interface AnnotationInitializer {
+public @interface AnnotationInitializerTarget {
 
 	Object CONST = new Object(); // $line-const$
 
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/BadCycleClass.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/BadCycleClassTarget.java
similarity index 86%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/BadCycleClass.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/BadCycleClassTarget.java
index c182664..27b48dc 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/BadCycleClass.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/BadCycleClassTarget.java
@@ -9,9 +9,11 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
+package org.jacoco.core.test.validation.java5.targets;
 
-public class BadCycleClass {
+import org.jacoco.core.test.validation.targets.Stubs;
+
+public class BadCycleClassTarget {
 
 	public static class Base {
 		static final Child b = new Child();
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target02.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/BooleanExpressionsTarget.java
similarity index 95%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target02.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/BooleanExpressionsTarget.java
index 62e22ef..a0b4ff5 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target02.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/BooleanExpressionsTarget.java
@@ -9,7 +9,7 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
+package org.jacoco.core.test.validation.java5.targets;
 
 import static org.jacoco.core.test.validation.targets.Stubs.f;
 import static org.jacoco.core.test.validation.targets.Stubs.i1;
@@ -20,7 +20,7 @@
 /**
  * This target exercises boolean expressions.
  */
-public class Target02 {
+public class BooleanExpressionsTarget {
 
 	public static void main(String[] args) {
 
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target05.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ClassInitializerTarget.java
similarity index 87%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target05.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ClassInitializerTarget.java
index ef5c398..a897836 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target05.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ClassInitializerTarget.java
@@ -9,14 +9,16 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
+package org.jacoco.core.test.validation.java5.targets;
 
 import static org.jacoco.core.test.validation.targets.Stubs.i1;
 
+import org.jacoco.core.test.validation.targets.Stubs;
+
 /**
  * This test target is a class with a static initializer.
  */
-public class Target05 {
+public class ClassInitializerTarget {
 
 	// No code required to initialize these fields:
 
@@ -42,7 +44,7 @@
 		Stubs.nop(); // $line-staticblock$
 	}
 
-	private Target05() {
+	private ClassInitializerTarget() {
 	}
 
 	public static void main(String[] args) {
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/targets/Constructor.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ConstructorsTarget.java
similarity index 82%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/targets/Constructor.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ConstructorsTarget.java
index 8a3e394..99ff020 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/targets/Constructor.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ConstructorsTarget.java
@@ -9,22 +9,22 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.filter.targets;
+package org.jacoco.core.test.validation.java5.targets;
 
 import static org.jacoco.core.test.validation.targets.Stubs.nop;
 
 /**
- * This test target is a constructors.
+ * This test target calls different constructors.
  */
-public class Constructor {
+public class ConstructorsTarget {
 
-	Constructor() { // $line-packageLocal$
+	ConstructorsTarget() { // $line-packageLocal$
 	}
 
-	private Constructor(Object arg) { // $line-arg$
+	private ConstructorsTarget(Object arg) { // $line-arg$
 	}
 
-	private static class Super extends Constructor {
+	private static class Super extends ConstructorsTarget {
 		private Super() {
 			super(null); // $line-super$
 		}
@@ -65,7 +65,7 @@
 
 	public static void main(String[] args) {
 		new Super();
-		new Constructor().new Inner();
+		new ConstructorsTarget().new Inner();
 		new InnerStatic();
 		new PublicDefault();
 		new PackageLocalDefault();
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target10.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ControlStructureBeforeSuperConstructorTarget.java
similarity index 79%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target10.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ControlStructureBeforeSuperConstructorTarget.java
index bb4496e..ffc1d5f 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target10.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ControlStructureBeforeSuperConstructorTarget.java
@@ -9,7 +9,7 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
+package org.jacoco.core.test.validation.java5.targets;
 
 import static org.jacoco.core.test.validation.targets.Stubs.f;
 import static org.jacoco.core.test.validation.targets.Stubs.t;
@@ -20,14 +20,14 @@
  * This test target has a constructor containing control structures before the
  * superclass constructor is called.
  */
-public class Target10 extends SuperClass {
+public class ControlStructureBeforeSuperConstructorTarget extends SuperClass {
 
-	public Target10() {
+	public ControlStructureBeforeSuperConstructorTarget() {
 		super(t() || f()); // $line-super$
 	}
 
 	public static void main(String[] args) {
-		new Target10();
+		new ControlStructureBeforeSuperConstructorTarget();
 	}
 
 }
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target01.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ControlStructuresTarget.java
similarity index 97%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target01.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ControlStructuresTarget.java
index 81d00fa..3152a8b 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target01.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ControlStructuresTarget.java
@@ -9,7 +9,7 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
+package org.jacoco.core.test.validation.java5.targets;
 
 import static org.jacoco.core.test.validation.targets.Stubs.f;
 import static org.jacoco.core.test.validation.targets.Stubs.i2;
@@ -21,7 +21,7 @@
 /**
  * This target exercises a set of common Java control structures.
  */
-public class Target01 {
+public class ControlStructuresTarget {
 
 	public static void main(String[] args) {
 
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/targets/EnumConstructor.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/EnumConstructorTarget.java
similarity index 92%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/targets/EnumConstructor.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/EnumConstructorTarget.java
index c6eb1c5..7d232bd 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/targets/EnumConstructor.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/EnumConstructorTarget.java
@@ -9,14 +9,14 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.filter.targets;
+package org.jacoco.core.test.validation.java5.targets;
 
 import static org.jacoco.core.test.validation.targets.Stubs.nop;
 
 /**
  * This test target is an enum constructor.
  */
-public class EnumConstructor {
+public class EnumConstructorTarget {
 
 	private enum ImplicitConstructor { // $line-implicitConstructor$
 	}
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/EnumImplicitMethods.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/EnumImplicitMethodsTarget.java
similarity index 81%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/EnumImplicitMethods.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/EnumImplicitMethodsTarget.java
index afbc46f..ff589f7 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/EnumImplicitMethods.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/EnumImplicitMethodsTarget.java
@@ -9,9 +9,11 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
+package org.jacoco.core.test.validation.java5.targets;
 
-public enum EnumImplicitMethods { // $line-classdef$
+import org.jacoco.core.test.validation.targets.Stubs;
+
+public enum EnumImplicitMethodsTarget { // $line-classdef$
 
 	CONST(Stubs.f() ? new Object() : new Object()); // $line-const$
 
@@ -19,11 +21,11 @@
 	} // $line-staticblock$
 
 	/**
-	 * Unlike in {@link Target07 regular classes}, even if enum has explicit
+	 * Unlike in {@link ConstructorsTarget regular classes}, even if enum has explicit
 	 * constructor, {@code clinit} method in any case has a reference to the
 	 * line of enum definition.
 	 */
-	EnumImplicitMethods(Object o) { // $line-super$
+	EnumImplicitMethodsTarget(Object o) { // $line-super$
 	} // $line-constructor$
 
 	/**
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/targets/EnumSwitch.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/EnumSwitchTarget.java
similarity index 91%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/targets/EnumSwitch.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/EnumSwitchTarget.java
index 850ef29..47447e5 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/targets/EnumSwitch.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/EnumSwitchTarget.java
@@ -9,14 +9,14 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.filter.targets;
+package org.jacoco.core.test.validation.java5.targets;
 
 import static org.jacoco.core.test.validation.targets.Stubs.nop;
 
 /**
  * This test target is a switch statement with a enum.
  */
-public class EnumSwitch {
+public class EnumSwitchTarget {
 
 	private enum E {
 		V1, V2
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target03.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ExceptionsTarget.java
similarity index 97%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target03.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ExceptionsTarget.java
index b4418ed..1896e64 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target03.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ExceptionsTarget.java
@@ -9,7 +9,7 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
+package org.jacoco.core.test.validation.java5.targets;
 
 import static org.jacoco.core.test.validation.targets.Stubs.ex;
 import static org.jacoco.core.test.validation.targets.Stubs.f;
@@ -20,7 +20,7 @@
 /**
  * This target produces exception based control flow examples.
  */
-public class Target03 {
+public class ExceptionsTarget {
 
 	public static void main(String[] args) {
 
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target11.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ExplicitInitialFrameTarget.java
similarity index 89%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target11.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ExplicitInitialFrameTarget.java
index d393cb7..bc089fc 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target11.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ExplicitInitialFrameTarget.java
@@ -9,7 +9,7 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
+package org.jacoco.core.test.validation.java5.targets;
 
 import static org.jacoco.core.test.validation.targets.Stubs.f;
 import static org.jacoco.core.test.validation.targets.Stubs.nop;
@@ -18,7 +18,7 @@
  * This test target needs an explicit initial frame as the first instruction
  * already is a jump target.
  */
-public class Target11 {
+public class ExplicitInitialFrameTarget {
 
 	public static void main(String[] args) {
 
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target09.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/FieldInitializationInTwoConstructorsTarget.java
similarity index 73%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target09.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/FieldInitializationInTwoConstructorsTarget.java
index a8589d1..58bf689 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target09.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/FieldInitializationInTwoConstructorsTarget.java
@@ -9,26 +9,26 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
+package org.jacoco.core.test.validation.java5.targets;
 
 /**
  * This test target has instance members with initialization in two
  * constructors.
  */
-public class Target09 {
+public class FieldInitializationInTwoConstructorsTarget {
 
 	Object field1 = null; // $line-field1$
 
 	int field2 = 123; // $line-field2$
 
-	public Target09() {
+	public FieldInitializationInTwoConstructorsTarget() {
 	} // $line-constr1$
 
-	public Target09(String arg) {
+	public FieldInitializationInTwoConstructorsTarget(String arg) {
 	} // $line-constr2$
 
 	public static void main(String[] args) {
-		new Target09();
+		new FieldInitializationInTwoConstructorsTarget();
 	}
 
 }
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/targets/Finally.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/FinallyTarget.java
similarity index 96%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/targets/Finally.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/FinallyTarget.java
index 6471a80..2c317e9 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/targets/Finally.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/FinallyTarget.java
@@ -9,14 +9,14 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.filter.targets;
+package org.jacoco.core.test.validation.java5.targets;
 
 import static org.jacoco.core.test.validation.targets.Stubs.ex;
 import static org.jacoco.core.test.validation.targets.Stubs.f;
 import static org.jacoco.core.test.validation.targets.Stubs.nop;
 import static org.jacoco.core.test.validation.targets.Stubs.t;
 
-public class Finally {
+public class FinallyTarget {
 
 	/**
 	 * <pre>
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target08.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ImplicitFieldInitializationTarget.java
similarity index 82%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target08.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ImplicitFieldInitializationTarget.java
index 1fe938a..6ddf8cb 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target08.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/ImplicitFieldInitializationTarget.java
@@ -9,12 +9,12 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
+package org.jacoco.core.test.validation.java5.targets;
 
 /**
  * This test target has instance members with implicit initializers.
  */
-public class Target08 { // $line-classdef$
+public class ImplicitFieldInitializationTarget { // $line-classdef$
 
 	Object field1; // $line-field1$
 
@@ -25,7 +25,7 @@
 	int field4 = 2000; // $line-field4$
 
 	public static void main(String[] args) {
-		new Target08();
+		new ImplicitFieldInitializationTarget();
 	}
 
 }
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target04.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/InterfaceClassInitializerTarget.java
similarity index 90%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target04.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/InterfaceClassInitializerTarget.java
index 8384744..2debf6b 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target04.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/InterfaceClassInitializerTarget.java
@@ -9,14 +9,14 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
+package org.jacoco.core.test.validation.java5.targets;
 
 import static org.jacoco.core.test.validation.targets.Stubs.i1;
 
 /**
  * This test target is an interface with a class initializer.
  */
-public interface Target04 {
+public interface InterfaceClassInitializerTarget {
 
 	// No code required to initialize these fields:
 
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target12.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/StructuredLockingTarget.java
similarity index 91%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target12.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/StructuredLockingTarget.java
index 5ee2e32..1e561ae 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target12.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/StructuredLockingTarget.java
@@ -9,14 +9,14 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
+package org.jacoco.core.test.validation.java5.targets;
 
 import static org.jacoco.core.test.validation.targets.Stubs.nop;
 
 /**
  * This target uses synchronized blocks which compile to try/catch statements.
  */
-public class Target12 {
+public class StructuredLockingTarget {
 
 	static void simple() {
 		Object lock1 = new Object();
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/targets/Synchronized.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/SynchronizedTarget.java
similarity index 94%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/targets/Synchronized.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/SynchronizedTarget.java
index b2d503f..5bea575 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/targets/Synchronized.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/SynchronizedTarget.java
@@ -9,7 +9,7 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.filter.targets;
+package org.jacoco.core.test.validation.java5.targets;
 
 import static org.jacoco.core.test.validation.targets.Stubs.ex;
 import static org.jacoco.core.test.validation.targets.Stubs.nop;
@@ -19,7 +19,7 @@
 /**
  * This test target is a synchronized statement.
  */
-public class Synchronized {
+public class SynchronizedTarget {
 
 	private static final Object lock = new Object();
 
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/targets/Synthetic.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/SyntheticTarget.java
similarity index 73%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/targets/Synthetic.java
rename to org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/SyntheticTarget.java
index 6e2f626..c5cc3fe 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/filter/targets/Synthetic.java
+++ b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/java5/targets/SyntheticTarget.java
@@ -9,25 +9,25 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.filter.targets;
+package org.jacoco.core.test.validation.java5.targets;
 
 /**
- * This test target is synthetic methods.
+ * This test target results in synthetic methods.
  */
-public class Synthetic { // $line-classdef$
+public class SyntheticTarget { // $line-classdef$
 
 	private static int counter; // $line-field$
 
 	/**
-	 * {@link org.jacoco.core.test.validation.targets.Target06 Default
-	 * constructor will refer to a line of class definition}, so that we define
-	 * constructor explicitly in order to verify that we filter all other
+	 * {@link org.jacoco.core.test.validation.java5.targets.ImplicitDefaultConstructorTarget
+	 * Default constructor will refer to a line of class definition}, so that we
+	 * define constructor explicitly in order to verify that we filter all other
 	 * constructions here that might refer to line of class definition.
 	 */
-	private Synthetic() {
+	private SyntheticTarget() {
 	}
 
-	static class Inner extends Synthetic { // $line-inner.classdef$
+	static class Inner extends SyntheticTarget { // $line-inner.classdef$
 
 		Inner() {
 		}
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target06.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target06.java
deleted file mode 100644
index f6bc75e..0000000
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target06.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2018 Mountainminds GmbH & Co. KG and Contributors
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Marc R. Hoffmann - initial API and implementation
- *    
- *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
-
-/**
- * This test target is a class with a implicit default constructor.
- *
- * @see Target07 explicit constructor
- */
-public class Target06 { // $line-classdef$
-
-	public static void main(String[] args) {
-		new Target06();
-	}
-
-}
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target07.java b/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target07.java
deleted file mode 100644
index 18c3ba5..0000000
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/targets/Target07.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2018 Mountainminds GmbH & Co. KG and Contributors
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Marc R. Hoffmann - initial API and implementation
- *    
- *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
-
-/**
- * This test target is a private empty default constructor.
- *
- * @see Target06 implicit constructor
- */
-public class Target07 { // $line-classdef$
-
-	private Target07() { // $line-super$
-	} // $line-constructor$
-
-	public static void main(String[] args) {
-	}
-
-}
diff --git a/org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/filter/StringSwitchTest.java b/org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/validation/java7/StringSwitchTest.java
similarity index 85%
rename from org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/filter/StringSwitchTest.java
rename to org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/validation/java7/StringSwitchTest.java
index 1518135..778097e 100644
--- a/org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/filter/StringSwitchTest.java
+++ b/org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/validation/java7/StringSwitchTest.java
@@ -9,11 +9,11 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.filter;
+package org.jacoco.core.test.validation.java7;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.filter.targets.StringSwitch;
 import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java7.targets.StringSwitchTarget;
 import org.junit.Test;
 
 /**
@@ -23,11 +23,11 @@
 public class StringSwitchTest extends ValidationTestBase {
 
 	public StringSwitchTest() {
-		super(StringSwitch.class);
+		super(StringSwitchTarget.class);
 	}
 
 	/**
-	 * {@link StringSwitch#covered(String)}
+	 * {@link StringSwitchTarget#covered(String)}
 	 */
 	@Test
 	public void covered() {
@@ -43,7 +43,7 @@
 	}
 
 	/**
-	 * {@link StringSwitch#notCovered(String)}
+	 * {@link StringSwitchTarget#notCovered(String)}
 	 */
 	@Test
 	public void notCovered() {
@@ -52,7 +52,7 @@
 	}
 
 	/**
-	 * {@link StringSwitch#handwritten(String)}
+	 * {@link StringSwitchTarget#handwritten(String)}
 	 */
 	@Test
 	public void handwritten() {
diff --git a/org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/filter/TryWithResourcesTest.java b/org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/validation/java7/TryWithResourcesTest.java
similarity index 91%
rename from org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/filter/TryWithResourcesTest.java
rename to org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/validation/java7/TryWithResourcesTest.java
index 41c6171..0056a34 100644
--- a/org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/filter/TryWithResourcesTest.java
+++ b/org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/validation/java7/TryWithResourcesTest.java
@@ -9,11 +9,11 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.filter;
+package org.jacoco.core.test.validation.java7;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.filter.targets.TryWithResources;
 import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java7.targets.TryWithResourcesTarget;
 import org.junit.Test;
 
 /**
@@ -23,11 +23,11 @@
 public class TryWithResourcesTest extends ValidationTestBase {
 
 	public TryWithResourcesTest() {
-		super(TryWithResources.class);
+		super(TryWithResourcesTarget.class);
 	}
 
 	/**
-	 * {@link TryWithResources#test()}
+	 * {@link TryWithResourcesFilterTarget#test()}
 	 */
 	@Test
 	public void test() {
@@ -49,7 +49,7 @@
 	}
 
 	/**
-	 * {@link TryWithResources#test2()}
+	 * {@link TryWithResourcesFilterTarget#test2()}
 	 */
 	@Test
 	public void test2() {
@@ -72,7 +72,7 @@
 	}
 
 	/**
-	 * {@link TryWithResources#returnInBody()}
+	 * {@link TryWithResourcesFilterTarget#returnInBody()}
 	 */
 	@Test
 	public void returnInBody() {
@@ -101,7 +101,7 @@
 	}
 
 	/**
-	 * {@link TryWithResources#nested()}
+	 * {@link TryWithResourcesFilterTarget#nested()}
 	 */
 	@Test
 	public void nested() {
@@ -142,7 +142,7 @@
 	}
 
 	/**
-	 * {@link TryWithResources#returnInCatch()}
+	 * {@link TryWithResourcesFilterTarget#returnInCatch()}
 	 */
 	@Test
 	public void returnInCatch() {
@@ -166,7 +166,7 @@
 	 */
 
 	/**
-	 * {@link TryWithResources#handwritten()}
+	 * {@link TryWithResourcesFilterTarget#handwritten()}
 	 */
 	@Test
 	public void handwritten() {
@@ -176,7 +176,7 @@
 	}
 
 	/**
-	 * {@link TryWithResources#empty()}
+	 * {@link TryWithResourcesFilterTarget#empty()}
 	 */
 	@Test
 	public void empty() {
@@ -198,7 +198,7 @@
 	}
 
 	/**
-	 * {@link TryWithResources#throwInBody()}
+	 * {@link TryWithResourcesFilterTarget#throwInBody()}
 	 */
 	@Test
 	public void throwInBody() {
diff --git a/org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/filter/targets/StringSwitch.java b/org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/validation/java7/targets/StringSwitchTarget.java
similarity index 95%
rename from org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/filter/targets/StringSwitch.java
rename to org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/validation/java7/targets/StringSwitchTarget.java
index c8b9a23..8e182a4 100644
--- a/org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/filter/targets/StringSwitch.java
+++ b/org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/validation/java7/targets/StringSwitchTarget.java
@@ -9,14 +9,14 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.filter.targets;
+package org.jacoco.core.test.validation.java7.targets;
 
 import static org.jacoco.core.test.validation.targets.Stubs.nop;
 
 /**
  * This test target is a switch statement with a String.
  */
-public class StringSwitch {
+public class StringSwitchTarget {
 
 	private static void covered(Object s) {
 		switch (String.valueOf(s)) { // $line-covered.switch$
diff --git a/org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/filter/targets/TryWithResources.java b/org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/validation/java7/targets/TryWithResourcesTarget.java
similarity index 97%
rename from org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/filter/targets/TryWithResources.java
rename to org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/validation/java7/targets/TryWithResourcesTarget.java
index 3d3a30d..08d9cda 100644
--- a/org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/filter/targets/TryWithResources.java
+++ b/org.jacoco.core.test.validation.java7/src/org/jacoco/core/test/validation/java7/targets/TryWithResourcesTarget.java
@@ -9,7 +9,7 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.filter.targets;
+package org.jacoco.core.test.validation.java7.targets;
 
 import static org.jacoco.core.test.validation.targets.Stubs.f;
 import static org.jacoco.core.test.validation.targets.Stubs.nop;
@@ -20,7 +20,7 @@
 /**
  * This test target is a try-with-resources statement.
  */
-public class TryWithResources {
+public class TryWithResourcesTarget {
 
 	private static class Resource implements Closeable {
 		@Override
diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/AnnotationOnLocalVariableTest.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/AnnotationOnLocalVariableTest.java
similarity index 83%
rename from org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/AnnotationOnLocalVariableTest.java
rename to org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/AnnotationOnLocalVariableTest.java
index 64e8faf..0b9a3c1 100644
--- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/AnnotationOnLocalVariableTest.java
+++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/AnnotationOnLocalVariableTest.java
@@ -9,10 +9,11 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java8;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.validation.targets.AnnotationOnLocalVariableTarget;
+import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java8.targets.AnnotationOnLocalVariableTarget;
 import org.junit.Test;
 
 /**
diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/BadCycleInterfaceTest.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/BadCycleInterfaceTest.java
similarity index 88%
rename from org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/BadCycleInterfaceTest.java
rename to org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/BadCycleInterfaceTest.java
index a8ab672..b9f0a46 100644
--- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/BadCycleInterfaceTest.java
+++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/BadCycleInterfaceTest.java
@@ -9,10 +9,11 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java8;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.validation.targets.BadCycleInterface;
+import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java8.targets.BadCycleInterfaceTarget;
 import org.junit.Test;
 
 /**
@@ -21,7 +22,7 @@
 public class BadCycleInterfaceTest extends ValidationTestBase {
 
 	public BadCycleInterfaceTest() throws Exception {
-		super(BadCycleInterface.class);
+		super(BadCycleInterfaceTarget.class);
 	}
 
 	@Test
diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/BootstrapMethodReferenceTest.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/BootstrapMethodReferenceTest.java
similarity index 88%
rename from org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/BootstrapMethodReferenceTest.java
rename to org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/BootstrapMethodReferenceTest.java
index dc20f0a..6934800 100644
--- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/BootstrapMethodReferenceTest.java
+++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/BootstrapMethodReferenceTest.java
@@ -9,7 +9,7 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java8;
 
 import static org.junit.Assert.assertEquals;
 
@@ -42,11 +42,13 @@
  */
 public class BootstrapMethodReferenceTest {
 
-	private final IRuntime runtime = new SystemPropertiesRuntime();
-	private final Instrumenter instrumenter = new Instrumenter(runtime);
+	private IRuntime runtime;
+	private Instrumenter instrumenter;
 
 	@Before
 	public void setup() throws Exception {
+		runtime = new SystemPropertiesRuntime();
+		instrumenter = new Instrumenter(runtime);
 		runtime.startup(new RuntimeData());
 	}
 
@@ -91,8 +93,9 @@
 	private static int run(final String className, final byte[] bytes)
 			throws ClassNotFoundException, NoSuchMethodException,
 			InvocationTargetException, IllegalAccessException {
-		return (Integer) new TargetLoader().add(className, bytes)
-				.getMethod("run").invoke(null);
+		final Integer result = (Integer) new TargetLoader()
+				.add(className, bytes).getMethod("run").invoke(null);
+		return result.intValue();
 	}
 
 	/**
@@ -111,14 +114,13 @@
 		mv.visitLabel(target);
 	}
 
-	@SuppressWarnings("unused")
 	public static CallSite bootstrap(final MethodHandles.Lookup caller,
 			final String name, final MethodType type) throws Exception {
-		return new ConstantCallSite(caller.findStatic(BootstrapMethodReferenceTest.class,
-				"callTarget", MethodType.methodType(int.class)));
+		return new ConstantCallSite(
+				caller.findStatic(BootstrapMethodReferenceTest.class,
+						"callTarget", MethodType.methodType(int.class)));
 	}
 
-	@SuppressWarnings("unused")
 	public static int callTarget() {
 		return 42;
 	}
diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/InterfaceDefaultMethodsTest.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/InterfaceDefaultMethodsTest.java
similarity index 84%
rename from org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/InterfaceDefaultMethodsTest.java
rename to org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/InterfaceDefaultMethodsTest.java
index 4611d78..4701e27 100644
--- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/InterfaceDefaultMethodsTest.java
+++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/InterfaceDefaultMethodsTest.java
@@ -9,10 +9,11 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java8;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.validation.targets.InterfaceDefaultMethodsTarget;
+import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java8.targets.InterfaceDefaultMethodsTarget;
 import org.junit.Test;
 
 /**
diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/InterfaceOnlyDefaultMethodsTest.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/InterfaceOnlyDefaultMethodsTest.java
similarity index 83%
rename from org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/InterfaceOnlyDefaultMethodsTest.java
rename to org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/InterfaceOnlyDefaultMethodsTest.java
index bbb7f0e..e0ffc72 100644
--- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/InterfaceOnlyDefaultMethodsTest.java
+++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/InterfaceOnlyDefaultMethodsTest.java
@@ -9,10 +9,11 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java8;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.validation.targets.InterfaceOnlyDefaultMethodsTarget;
+import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java8.targets.InterfaceOnlyDefaultMethodsTarget;
 import org.junit.Test;
 
 /**
diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/LambdaExpressionsTest.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/LambdaExpressionsTest.java
similarity index 84%
rename from org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/LambdaExpressionsTest.java
rename to org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/LambdaExpressionsTest.java
index f134499..1d97a3d 100644
--- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/LambdaExpressionsTest.java
+++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/LambdaExpressionsTest.java
@@ -9,10 +9,11 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java8;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.validation.targets.LambdaExpressionsTarget;
+import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java8.targets.LambdaExpressionsTarget;
 import org.junit.Test;
 
 /**
diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/LambdaInInterfaceTest.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/LambdaInInterfaceTest.java
similarity index 85%
rename from org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/LambdaInInterfaceTest.java
rename to org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/LambdaInInterfaceTest.java
index 759a78f..4d4d184 100644
--- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/LambdaInInterfaceTest.java
+++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/LambdaInInterfaceTest.java
@@ -9,10 +9,11 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.test.validation.java8;
 
 import org.jacoco.core.analysis.ICounter;
-import org.jacoco.core.test.validation.targets.LambdaInInterfaceTarget;
+import org.jacoco.core.test.validation.ValidationTestBase;
+import org.jacoco.core.test.validation.java8.targets.LambdaInInterfaceTarget;
 import org.junit.Test;
 
 /**
diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/targets/AnnotationOnLocalVariableTarget.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/AnnotationOnLocalVariableTarget.java
similarity index 95%
rename from org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/targets/AnnotationOnLocalVariableTarget.java
rename to org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/AnnotationOnLocalVariableTarget.java
index 3417c09..b2d6acb 100644
--- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/targets/AnnotationOnLocalVariableTarget.java
+++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/AnnotationOnLocalVariableTarget.java
@@ -9,7 +9,7 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
+package org.jacoco.core.test.validation.java8.targets;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;
diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/targets/BadCycleInterface.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/BadCycleInterfaceTarget.java
similarity index 88%
rename from org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/targets/BadCycleInterface.java
rename to org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/BadCycleInterfaceTarget.java
index d7e7a74..bac69f8 100644
--- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/targets/BadCycleInterface.java
+++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/BadCycleInterfaceTarget.java
@@ -9,9 +9,11 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
+package org.jacoco.core.test.validation.java8.targets;
 
-public class BadCycleInterface {
+import org.jacoco.core.test.validation.targets.Stubs;
+
+public class BadCycleInterfaceTarget {
 
 	public interface Base {
 		static final Object BASE_CONST = new Child() {
diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/targets/InterfaceDefaultMethodsTarget.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/InterfaceDefaultMethodsTarget.java
similarity index 94%
rename from org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/targets/InterfaceDefaultMethodsTarget.java
rename to org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/InterfaceDefaultMethodsTarget.java
index 2e95299..2c8a13d 100644
--- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/targets/InterfaceDefaultMethodsTarget.java
+++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/InterfaceDefaultMethodsTarget.java
@@ -9,7 +9,7 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
+package org.jacoco.core.test.validation.java8.targets;
 
 import static org.jacoco.core.test.validation.targets.Stubs.i1;
 
diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/targets/InterfaceOnlyDefaultMethodsTarget.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/InterfaceOnlyDefaultMethodsTarget.java
similarity index 94%
rename from org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/targets/InterfaceOnlyDefaultMethodsTarget.java
rename to org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/InterfaceOnlyDefaultMethodsTarget.java
index 5fa48fb..dd96e0a 100644
--- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/targets/InterfaceOnlyDefaultMethodsTarget.java
+++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/InterfaceOnlyDefaultMethodsTarget.java
@@ -9,7 +9,7 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
+package org.jacoco.core.test.validation.java8.targets;
 
 /**
  * This test target is an interface with only default methods.
diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/targets/LambdaExpressionsTarget.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/LambdaExpressionsTarget.java
similarity index 94%
rename from org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/targets/LambdaExpressionsTarget.java
rename to org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/LambdaExpressionsTarget.java
index bcb65b6..a8c7bd8 100644
--- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/targets/LambdaExpressionsTarget.java
+++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/LambdaExpressionsTarget.java
@@ -9,7 +9,7 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
+package org.jacoco.core.test.validation.java8.targets;
 
 import static org.jacoco.core.test.validation.targets.Stubs.exec;
 import static org.jacoco.core.test.validation.targets.Stubs.noexec;
diff --git a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/targets/LambdaInInterfaceTarget.java b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/LambdaInInterfaceTarget.java
similarity index 93%
rename from org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/targets/LambdaInInterfaceTarget.java
rename to org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/LambdaInInterfaceTarget.java
index 23edc6d..4a9db74 100644
--- a/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/targets/LambdaInInterfaceTarget.java
+++ b/org.jacoco.core.test.validation.java8/src/org/jacoco/core/test/validation/java8/targets/LambdaInInterfaceTarget.java
@@ -9,7 +9,7 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation.targets;
+package org.jacoco.core.test.validation.java8.targets;
 
 import static org.jacoco.core.test.validation.targets.Stubs.nop;
 
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ClassFileVersionsTest.java b/org.jacoco.core.test/src/org/jacoco/core/instr/ClassFileVersionsTest.java
similarity index 98%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ClassFileVersionsTest.java
rename to org.jacoco.core.test/src/org/jacoco/core/instr/ClassFileVersionsTest.java
index 87d78a2..9df4e30 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ClassFileVersionsTest.java
+++ b/org.jacoco.core.test/src/org/jacoco/core/instr/ClassFileVersionsTest.java
@@ -9,7 +9,7 @@
  *    Marc R. Hoffmann - initial API and implementation
  *    
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.instr;
 
 import static org.junit.Assert.assertEquals;
 import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
diff --git a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ResizeInstructionsTest.java b/org.jacoco.core.test/src/org/jacoco/core/instr/ResizeInstructionsTest.java
similarity index 94%
rename from org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ResizeInstructionsTest.java
rename to org.jacoco.core.test/src/org/jacoco/core/instr/ResizeInstructionsTest.java
index fe6d134..fb639ca 100644
--- a/org.jacoco.core.test.validation.java5/src/org/jacoco/core/test/validation/ResizeInstructionsTest.java
+++ b/org.jacoco.core.test/src/org/jacoco/core/instr/ResizeInstructionsTest.java
@@ -9,7 +9,7 @@
  *    Evgeny Mandrikov - initial API and implementation
  *
  *******************************************************************************/
-package org.jacoco.core.test.validation;
+package org.jacoco.core.instr;
 
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
@@ -34,14 +34,17 @@
 
 public class ResizeInstructionsTest {
 
-	private final IRuntime runtime = new SystemPropertiesRuntime();
-	private final Instrumenter instrumenter = new Instrumenter(runtime);
+	private IRuntime runtime;
+	private Instrumenter instrumenter;
 
-	private boolean computedCommonSuperClass = false;
+	private boolean computedCommonSuperClass;
 
 	@Before
 	public void setup() throws Exception {
+		runtime = new SystemPropertiesRuntime();
+		instrumenter = new Instrumenter(runtime);
 		runtime.startup(new RuntimeData());
+		computedCommonSuperClass = false;
 	}
 
 	@After