anchor.diff:      frame++;
     }
   
  -  void setupTest(int n) {
  +  PerformanceTest createTest(int n) {
       if (test == 0) {
         // Test atlas performance
  -      addChild(new TestPerformanceAtlas());
  +      return new TestPerformanceAtlas();
       } else if (test == 1) {
  +      // Test atlas performance
  +      return new TestPerformanceAtlas2();
  +    } else if (test == 2) {
         // Test sprite performance
  -      addChild(new TestPerformanceSprites());
  -    } else if (test == 2) {
  +      return new TestPerformanceSprites();
  +    } else if (test == 3) {
  +      // Test sprite performance
  +      return new TestPerformanceSprites2();
  +    } else if (test == 4) {
         // Test particle performance
  -      addChild(new TestPerformanceParticles());
  -    }
  -  }
  -}
  -
  -class TestPerformanceParticles extends Node {
  +      return new TestPerformanceParticles();
  +    }
  +    return null;
  +  }
  +}
  +
  +abstract class PerformanceTest extends Node {
  +  String get name;
  +}
  +
  +class TestPerformanceParticles extends PerformanceTest {
  +  String get name => "64 particle systems";
  +
     final grid = 8;
     TestPerformanceParticles() {
       for (int x = 0; x < grid; x++) {
  
positive.code:         int totalTestTime = currentTime - testStartTime;
          double millisPerFrame =
            totalTestTime.toDouble() / numFramesPerTest.toDouble();
          print("TEST ${test - 1} fps: ${1.0 / (millisPerFrame / 1000)}");
  
          // Clear test
          removeAllChildren();
  
negative.code: 
        if (test < numTests) {
          // Start new test
          PerformanceTest perfTest = createTest(test);
          addChild(perfTest);
  
          print("TEST ${test + 1}/$numTests STARTING: ${perfTest.name}");
  
          testStartTime = new DateTime.now().millisecondsSinceEpoch;
        }
        test++;
  