private ExecutionDataStore execute(final ClassReader reader)
throws InstantiationException, IllegalAccessException {
IRuntime runtime = new SystemPropertiesRuntime();
runtime.startup();
final byte[] bytes = new Instrumenter(runtime).instrument(reader);
final TargetLoader loader = new TargetLoader(target, bytes);
final Object instance = loader.getTargetClass().newInstance();
((Runnable) instance).run();
final ExecutionDataStore store = new ExecutionDataStore();
runtime.collect(store, false);
runtime.shutdown();
return store;