From 948956b06a70cf82905159d99d98ddfa9c6bd1b4 Mon Sep 17 00:00:00 2001
From: Christian Wulf <chw@informatik.uni-kiel.de>
Date: Thu, 19 Jun 2014 07:45:52 +0200
Subject: [PATCH] refactored package structure

---
 src/main/java/experiment/Experiment1.java     | 20 ++++----
 src/main/java/experiment/Experiment2.java     | 25 +++++-----
 .../examples/ThroughputTimestampAnalysis.java |  3 +-
 .../analysis/stage/MappingFileParser.java     |  3 +-
 .../stage/RecordFromBinaryFileCreator.java    |  4 +-
 .../stage/RecordFromTextLineCreator.java      |  7 +--
 .../analysis/stage/StartTimestampFilter.java  |  3 +-
 .../analysis/stage/StopTimestampFilter.java   |  3 +-
 .../framework/core/ReservableContext.java     |  5 --
 .../java/teetime/util}/ArrayWrapper.java      |  2 +-
 .../teetime/util}/ConstructorClosure.java     |  2 +-
 .../java/teetime/util/StatisticsUtil.java     |  2 +-
 .../ConcurrentCountWordsAnalysis.java         | 40 ++++++++--------
 .../countWords/CountWordsAnalysis.java        | 22 ++++-----
 .../examples/countWords/CountWordsStage.java  | 10 ++--
 .../countWords/DirectoryName2Files.java       | 10 ++--
 .../countWords/OutputWordsCountSink.java      |  8 ++--
 .../countWords/QueuedCountWordsAnalysis.java  | 28 +++++------
 .../CountingObjectsAnalysis.java              | 20 ++++----
 .../recordReader/RecordReaderAnalysis.java    | 36 +++++++-------
 .../throughput/ThroughputAnalysis.java        | 20 ++++----
 .../ThroughputTimestampAnalysis.java          | 28 +++++------
 .../examples/throughput/TimestampObject.java  |  2 +-
 .../traceReconstruction/TraceAnalysis.java    |  7 +--
 .../TraceReconstructionAnalysis.java          | 24 +++++-----
 .../TraceReconstructionAnalysis2.java         | 48 +++++++++----------
 .../concurrent/ConcurrentPipeline.java.todo   |  0
 .../ConcurrentWorkStealingPipe.java           | 14 +++---
 .../ConcurrentWorkStealingPipeFactory.java    |  6 +--
 .../framework/concurrent/IStageScheduler.java |  4 +-
 .../framework/concurrent/IStageWorkList.java  |  6 +--
 .../SingleProducerSingleConsumerPipe.java     | 12 ++---
 .../concurrent/StageTerminationPolicy.java    |  2 +-
 .../concurrent/StageWorkArrayList.java        |  8 ++--
 .../framework/concurrent/StageWorkList.java   |  6 +--
 .../framework/concurrent/TokenBundle.java     |  2 +-
 .../framework/concurrent/WorkerThread.java    | 18 +++----
 .../concurrent/steal/IStealStrategy.java      |  8 ++--
 .../steal/StealIfEmptyStrategy.java           |  8 ++--
 .../framework/core/AbstractFilter.java        |  2 +-
 .../framework/core/AbstractMultiPort.java     |  2 +-
 .../framework/core/AbstractPipe.java          |  2 +-
 .../framework/core/AbstractPort.java          |  2 +-
 .../framework/core/AbstractStage.java         |  2 +-
 .../framework/core/Analysis.java              |  2 +-
 .../framework/core/CompositeFilter.java       |  2 +-
 .../framework/core/Context.java               |  2 +-
 .../framework/core/Description.java           |  2 +-
 .../framework/core/IBaseStage.java            |  2 +-
 .../framework/core/IInputPort.java            |  2 +-
 .../framework/core/IOutputPort.java           |  2 +-
 .../framework/core/IPipe.java                 |  2 +-
 .../framework/core/IPipeCommand.java          |  2 +-
 .../framework/core/IPipeline.java             |  2 +-
 .../framework/core/IPort.java                 |  2 +-
 .../framework/core/IPortListener.java         |  2 +-
 .../framework/core/IReservablePipe.java       |  2 +-
 .../framework/core/ISink.java                 |  2 +-
 .../framework/core/ISource.java               |  2 +-
 .../framework/core/IStage.java                |  2 +-
 .../framework/core/InputPortImpl.java         |  2 +-
 .../framework/core/OutputPortImpl.java        |  2 +-
 .../framework/core/Pipeline.java              |  2 +-
 .../framework/core/ReservableContext.java     |  5 ++
 .../scheduling/NextStageScheduler.java        | 14 +++---
 .../scheduling/StageStateContainer.java       |  4 +-
 .../scheduling/StageStateManager.java         | 12 ++---
 .../SynchronizedStageStateContainer.java      |  4 +-
 .../UnsynchronizedStageStateContainer.java    |  4 +-
 .../framework/sequential/MethodCallPipe.java  | 14 +++---
 .../framework/sequential/Pipeline.java.todo   |  0
 .../framework/sequential/QueuePipe.java       | 14 +++---
 .../sequential/ReservableQueuePipe.java       | 12 ++---
 .../util/BaseStage2StageExtractor.java        |  8 ++--
 .../framework/util/Cloner.java                |  2 +-
 .../explicitScheduling}/stage/Cache.java      | 10 ++--
 .../stage/CollectorSink.java                  |  8 ++--
 .../stage/CountingFilter.java                 | 10 ++--
 .../stage/FileExtensionFilter.java            | 10 ++--
 .../stage/InstanceOfFilter.java               | 10 ++--
 .../stage/MappingException.java               |  2 +-
 .../explicitScheduling}/stage/NoopFilter.java | 10 ++--
 .../stage/StartTimestampFilter.java           | 12 ++---
 .../stage/StopTimestampFilter.java            | 12 ++---
 .../stage/SuperTypeFilter.java                |  6 +--
 .../stage/TypeLoggerFilter.java               | 10 ++--
 .../stage/basic/Clock.java                    |  8 ++--
 .../stage/basic/Delay.java                    | 10 ++--
 .../stage/basic/ObjectProducer.java           |  8 ++--
 .../stage/basic/RepeaterSource.java           | 10 ++--
 .../basic/distributor/CloneStrategy.java      |  6 +--
 .../distributor/CopyByReferenceStrategy.java  |  6 +--
 .../stage/basic/distributor/Distributor.java  | 10 ++--
 .../distributor/IDistributorStrategy.java     |  6 +--
 .../basic/distributor/RoundRobinStrategy.java |  6 +--
 .../stage/basic/merger/IMergerStrategy.java   |  6 +--
 .../stage/basic/merger/Merger.java            | 12 ++---
 .../basic/merger/RoundRobinStrategy.java      |  6 +--
 .../stage/composite/CycledCountingFilter.java |  6 +--
 .../ReadRecordFromCsvFileFilter.java          | 16 +++----
 .../stage/composite/TeeFilter.java            | 18 +++----
 .../stage/io/DbReader.java                    | 11 +++--
 .../stage/io/Directory2FilesFilter.java       | 10 ++--
 .../stage/io/File2TextLinesFilter.java        | 12 ++---
 .../explicitScheduling}/stage/io/Printer.java | 10 ++--
 .../stage/io/TCPReader.java                   |  9 ++--
 .../stage/kieker/File2RecordFilter.java       | 30 ++++++------
 .../kieker/MonitoringLogDirectory2Files.java  |  9 ++--
 .../kieker/className/ClassNameRegistry.java   |  2 +-
 .../ClassNameRegistryCreationFilter.java      | 11 +++--
 .../ClassNameRegistryRepository.java          |  2 +-
 .../fileToRecord/BinaryFile2RecordFilter.java | 13 ++---
 .../fileToRecord/DatFile2RecordFilter.java    | 21 ++++----
 .../fileToRecord/ZipFile2RecordFilter.java    | 13 ++---
 .../TextLine2MappingRegistryFilter.java       |  9 ++--
 .../textLine/TextLine2RecordFilter.java       | 17 +++----
 .../TraceReconstructionFilter.java            | 10 ++--
 .../predicate/FileExtensionPredicate.java     |  2 +-
 .../stage/predicate/IsDirectoryPredicate.java |  2 +-
 .../predicate/IsIMonitoringRecordInRange.java |  2 +-
 .../predicate/IsInstanceOfPredicate.java      |  2 +-
 .../IsOperationExecutionRecordInRange.java    |  2 +-
 ...rationExecutionRecordTraceIdPredicate.java |  2 +-
 .../stage/predicate/IsSuperTypePredicate.java |  2 +-
 .../stage/predicate/IsTimestampInRange.java   |  2 +-
 .../stage/predicate/IsTraceIdPredicate.java   |  2 +-
 .../stage/predicate/PredicateFilter.java      | 10 ++--
 .../stringBuffer/StringBufferFilter.java      | 14 +++---
 .../handler/AbstractDataTypeHandler.java      |  5 +-
 .../handler/IMonitoringRecordHandler.java     |  2 +-
 .../stringBuffer/handler/StringHandler.java   |  2 +-
 .../stringBuffer/util/KiekerHashMap.java      |  2 +-
 .../throughput/AnalysisThroughputFilter.java  | 10 ++--
 .../throughput/ThroughputAnalysisResult.java  |  2 +-
 .../stage/util/TextLine.java                  |  2 +-
 .../visualization/IWebVisualizationSink.java  |  2 +-
 .../PlainTextWebVisualizationSink.java        |  8 ++--
 .../framework/core}/AbstractStage.java        |  6 +--
 .../framework/core}/ConsumerStage.java        |  2 +-
 .../methodcall/framework/core}/InputPort.java |  4 +-
 .../framework/core}/OutputPort.java           |  4 +-
 .../methodcall/framework/core}/Pipeline.java  |  7 +--
 .../framework/core}/ProducerStage.java        |  2 +-
 .../framework/core}/RunnableStage.java        |  2 +-
 .../methodcall/framework/core}/Stage.java     |  2 +-
 .../framework/core}/StageWithPort.java        |  2 +-
 .../framework/core/pipe}/AbstractPipe.java    |  2 +-
 .../framework/core/pipe}/IPipe.java           |  2 +-
 .../core/pipe}/OrderedGrowableArrayPipe.java  |  4 +-
 .../core/pipe}/OrderedGrowablePipe.java       |  5 +-
 .../methodcall/framework/core/pipe}/Pipe.java |  4 +-
 .../core/pipe}/SingleElementPipe.java         |  5 +-
 .../framework/core/pipe}/SpScPipe.java        |  4 +-
 .../core/pipe}/UnorderedGrowablePipe.java     |  5 +-
 .../variant}/methodcall/stage/Clock.java      |  3 +-
 .../methodcall/stage/CollectorSink.java       |  3 +-
 .../variant}/methodcall/stage/Delay.java      |  5 +-
 .../methodcall/stage/Distributor.java         |  5 +-
 .../variant}/methodcall/stage/EndStage.java   | 12 ++---
 .../variant}/methodcall/stage/Merger.java     |  5 +-
 .../variant}/methodcall/stage/NoopFilter.java |  3 +-
 .../methodcall/stage/ObjectProducer.java      |  5 +-
 .../variant}/methodcall/stage/Relay.java      |  3 +-
 .../variant}/methodcall/stage/Sink.java       |  3 +-
 .../stage/StartTimestampFilter.java           |  5 +-
 .../methodcall/stage/StopTimestampFilter.java |  5 +-
 .../ThroughputTimestampAnalysisTest.java      |  2 +-
 .../methodcall/OnDisableListener.java         |  6 ---
 .../RecordReaderAnalysisTest.java             |  7 +--
 .../throughput/ThroughputAnalysisTest.java    |  3 +-
 .../ThroughputTimestampAnalysisTest.java      |  4 +-
 ...odCallThoughputTimestampAnalysis1Test.java |  6 +--
 .../MethodCallThroughputAnalysis1.java        | 17 +++----
 ...odCallThoughputTimestampAnalysis2Test.java |  6 +--
 .../MethodCallThroughputAnalysis2.java        | 19 ++++----
 ...odCallThoughputTimestampAnalysis3Test.java |  6 +--
 .../MethodCallThroughputAnalysis3.java        | 18 +++----
 ...odCallThoughputTimestampAnalysis4Test.java |  6 +--
 .../MethodCallThroughputAnalysis4.java        | 18 +++----
 ...odCallThoughputTimestampAnalysis5Test.java |  6 +--
 .../MethodCallThroughputAnalysis5.java        | 18 +++----
 ...odCallThoughputTimestampAnalysis6Test.java |  6 +--
 .../MethodCallThroughputAnalysis6.java        | 18 +++----
 ...odCallThoughputTimestampAnalysis7Test.java |  6 +--
 .../MethodCallThroughputAnalysis7.java        | 19 ++++----
 ...odCallThoughputTimestampAnalysis8Test.java |  6 +--
 .../MethodCallThroughputAnalysis8.java        | 20 ++++----
 ...odCallThoughputTimestampAnalysis9Test.java |  6 +--
 .../MethodCallThroughputAnalysis9.java        | 21 ++++----
 ...dCallThoughputTimestampAnalysis10Test.java |  6 +--
 .../MethodCallThroughputAnalysis10.java       | 21 ++++----
 ...dCallThoughputTimestampAnalysis11Test.java |  6 +--
 .../MethodCallThroughputAnalysis11.java       | 21 ++++----
 ...dCallThoughputTimestampAnalysis12Test.java |  6 +--
 .../MethodCallThroughputAnalysis12.java       | 19 ++++----
 ...dCallThoughputTimestampAnalysis13Test.java |  6 +--
 .../MethodCallThroughputAnalysis13.java       | 22 +++++----
 ...dCallThoughputTimestampAnalysis14Test.java |  6 +--
 .../MethodCallThroughputAnalysis14.java       | 21 ++++----
 ...dCallThoughputTimestampAnalysis15Test.java |  6 +--
 .../MethodCallThroughputAnalysis15.java       | 28 ++++++-----
 ...dCallThoughputTimestampAnalysis16Test.java |  6 +--
 .../MethodCallThroughputAnalysis16.java       | 27 ++++++-----
 ...dCallThoughputTimestampAnalysis17Test.java |  6 +--
 .../MethodCallThroughputAnalysis17.java       | 32 ++++++++-----
 .../MethodCallThroughputAnalysis18.java       | 27 ++++++-----
 206 files changed, 916 insertions(+), 830 deletions(-)
 delete mode 100644 src/main/java/teetime/framework/core/ReservableContext.java
 rename src/{test/java/teetime/examples/throughput/methodcall => main/java/teetime/util}/ArrayWrapper.java (91%)
 rename src/{test/java/teetime/examples/throughput/methodcall => main/java/teetime/util}/ConstructorClosure.java (60%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/examples/countWords/ConcurrentCountWordsAnalysis.java (87%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/examples/countWords/CountWordsAnalysis.java (85%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/examples/countWords/CountWordsStage.java (87%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/examples/countWords/DirectoryName2Files.java (83%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/examples/countWords/OutputWordsCountSink.java (87%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/examples/countWords/QueuedCountWordsAnalysis.java (82%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/examples/countingObjects/CountingObjectsAnalysis.java (84%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/examples/recordReader/RecordReaderAnalysis.java (78%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/examples/throughput/ThroughputAnalysis.java (81%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/examples/throughput/ThroughputTimestampAnalysis.java (86%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/examples/throughput/TimestampObject.java (96%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/examples/traceReconstruction/TraceAnalysis.java (91%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/examples/traceReconstruction/TraceReconstructionAnalysis.java (75%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/examples/traceReconstruction/TraceReconstructionAnalysis2.java (76%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/concurrent/ConcurrentPipeline.java.todo (100%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/concurrent/ConcurrentWorkStealingPipe.java (89%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/concurrent/ConcurrentWorkStealingPipeFactory.java (85%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/concurrent/IStageScheduler.java (89%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/concurrent/IStageWorkList.java (85%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/concurrent/SingleProducerSingleConsumerPipe.java (83%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/concurrent/StageTerminationPolicy.java (93%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/concurrent/StageWorkArrayList.java (93%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/concurrent/StageWorkList.java (91%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/concurrent/TokenBundle.java (76%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/concurrent/WorkerThread.java (92%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/concurrent/steal/IStealStrategy.java (77%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/concurrent/steal/StealIfEmptyStrategy.java (82%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/AbstractFilter.java (99%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/AbstractMultiPort.java (96%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/AbstractPipe.java (98%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/AbstractPort.java (92%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/AbstractStage.java (97%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/Analysis.java (94%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/CompositeFilter.java (96%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/Context.java (98%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/Description.java (95%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/IBaseStage.java (93%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/IInputPort.java (91%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/IOutputPort.java (80%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/IPipe.java (98%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/IPipeCommand.java (93%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/IPipeline.java (94%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/IPort.java (84%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/IPortListener.java (93%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/IReservablePipe.java (67%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/ISink.java (94%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/ISource.java (93%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/IStage.java (98%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/InputPortImpl.java (96%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/OutputPortImpl.java (77%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/core/Pipeline.java (96%)
 create mode 100644 src/main/java/teetime/variant/explicitScheduling/framework/core/ReservableContext.java
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/scheduling/NextStageScheduler.java (86%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/scheduling/StageStateContainer.java (80%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/scheduling/StageStateManager.java (87%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/scheduling/SynchronizedStageStateContainer.java (77%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/scheduling/UnsynchronizedStageStateContainer.java (73%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/sequential/MethodCallPipe.java (84%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/sequential/Pipeline.java.todo (100%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/sequential/QueuePipe.java (85%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/sequential/ReservableQueuePipe.java (76%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/util/BaseStage2StageExtractor.java (85%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/framework/util/Cloner.java (98%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/Cache.java (87%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/CollectorSink.java (86%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/CountingFilter.java (85%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/FileExtensionFilter.java (88%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/InstanceOfFilter.java (77%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/MappingException.java (95%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/NoopFilter.java (80%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/StartTimestampFilter.java (78%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/StopTimestampFilter.java (77%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/SuperTypeFilter.java (61%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/TypeLoggerFilter.java (85%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/basic/Clock.java (86%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/basic/Delay.java (65%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/basic/ObjectProducer.java (88%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/basic/RepeaterSource.java (85%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/basic/distributor/CloneStrategy.java (84%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/basic/distributor/CopyByReferenceStrategy.java (85%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/basic/distributor/Distributor.java (83%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/basic/distributor/IDistributorStrategy.java (83%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/basic/distributor/RoundRobinStrategy.java (88%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/basic/merger/IMergerStrategy.java (83%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/basic/merger/Merger.java (81%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/basic/merger/RoundRobinStrategy.java (89%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/composite/CycledCountingFilter.java (90%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/composite/ReadRecordFromCsvFileFilter.java (76%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/composite/TeeFilter.java (73%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/io/DbReader.java (94%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/io/Directory2FilesFilter.java (89%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/io/File2TextLinesFilter.java (85%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/io/Printer.java (92%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/io/TCPReader.java (95%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/kieker/File2RecordFilter.java (85%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/kieker/MonitoringLogDirectory2Files.java (90%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/kieker/className/ClassNameRegistry.java (93%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/kieker/className/ClassNameRegistryCreationFilter.java (89%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/kieker/className/ClassNameRegistryRepository.java (96%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/kieker/fileToRecord/BinaryFile2RecordFilter.java (89%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/kieker/fileToRecord/DatFile2RecordFilter.java (71%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/kieker/fileToRecord/ZipFile2RecordFilter.java (90%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/kieker/fileToRecord/textLine/TextLine2MappingRegistryFilter.java (89%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/kieker/fileToRecord/textLine/TextLine2RecordFilter.java (86%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/kieker/traceReconstruction/TraceReconstructionFilter.java (94%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/predicate/FileExtensionPredicate.java (95%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/predicate/IsDirectoryPredicate.java (94%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/predicate/IsIMonitoringRecordInRange.java (95%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/predicate/IsInstanceOfPredicate.java (95%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/predicate/IsOperationExecutionRecordInRange.java (96%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/predicate/IsOperationExecutionRecordTraceIdPredicate.java (95%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/predicate/IsSuperTypePredicate.java (95%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/predicate/IsTimestampInRange.java (95%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/predicate/IsTraceIdPredicate.java (95%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/predicate/PredicateFilter.java (85%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/stringBuffer/StringBufferFilter.java (84%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/stringBuffer/handler/AbstractDataTypeHandler.java (89%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/stringBuffer/handler/IMonitoringRecordHandler.java (96%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/stringBuffer/handler/StringHandler.java (93%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/stringBuffer/util/KiekerHashMap.java (99%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/throughput/AnalysisThroughputFilter.java (86%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/throughput/ThroughputAnalysisResult.java (95%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/util/TextLine.java (95%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/visualization/IWebVisualizationSink.java (94%)
 rename src/main/java/teetime/{ => variant/explicitScheduling}/stage/visualization/PlainTextWebVisualizationSink.java (86%)
 rename src/{test/java/teetime/examples/throughput/methodcall/stage => main/java/teetime/variant/methodcall/framework/core}/AbstractStage.java (93%)
 rename src/{test/java/teetime/examples/throughput/methodcall/stage => main/java/teetime/variant/methodcall/framework/core}/ConsumerStage.java (94%)
 rename src/{test/java/teetime/examples/throughput/methodcall => main/java/teetime/variant/methodcall/framework/core}/InputPort.java (74%)
 rename src/{test/java/teetime/examples/throughput/methodcall => main/java/teetime/variant/methodcall/framework/core}/OutputPort.java (68%)
 rename src/{test/java/teetime/examples/throughput/methodcall/stage => main/java/teetime/variant/methodcall/framework/core}/Pipeline.java (95%)
 rename src/{test/java/teetime/examples/throughput/methodcall/stage => main/java/teetime/variant/methodcall/framework/core}/ProducerStage.java (92%)
 rename src/{test/java/teetime/examples/throughput/methodcall => main/java/teetime/variant/methodcall/framework/core}/RunnableStage.java (86%)
 rename src/{test/java/teetime/examples/throughput/methodcall => main/java/teetime/variant/methodcall/framework/core}/Stage.java (92%)
 rename src/{test/java/teetime/examples/throughput/methodcall => main/java/teetime/variant/methodcall/framework/core}/StageWithPort.java (83%)
 rename src/{test/java/teetime/examples/throughput/methodcall => main/java/teetime/variant/methodcall/framework/core/pipe}/AbstractPipe.java (86%)
 rename src/{test/java/teetime/examples/throughput/methodcall => main/java/teetime/variant/methodcall/framework/core/pipe}/IPipe.java (83%)
 rename src/{test/java/teetime/examples/throughput/methodcall => main/java/teetime/variant/methodcall/framework/core/pipe}/OrderedGrowableArrayPipe.java (85%)
 rename src/{test/java/teetime/examples/throughput/methodcall => main/java/teetime/variant/methodcall/framework/core/pipe}/OrderedGrowablePipe.java (82%)
 rename src/{test/java/teetime/examples/throughput/methodcall => main/java/teetime/variant/methodcall/framework/core/pipe}/Pipe.java (88%)
 rename src/{test/java/teetime/examples/throughput/methodcall => main/java/teetime/variant/methodcall/framework/core/pipe}/SingleElementPipe.java (83%)
 rename src/{test/java/teetime/examples/throughput/methodcall => main/java/teetime/variant/methodcall/framework/core/pipe}/SpScPipe.java (80%)
 rename src/{test/java/teetime/examples/throughput/methodcall => main/java/teetime/variant/methodcall/framework/core/pipe}/UnorderedGrowablePipe.java (93%)
 rename src/{test/java/teetime/examples/throughput => main/java/teetime/variant}/methodcall/stage/Clock.java (92%)
 rename src/{test/java/teetime/examples/throughput => main/java/teetime/variant}/methodcall/stage/CollectorSink.java (95%)
 rename src/{test/java/teetime/examples/throughput => main/java/teetime/variant}/methodcall/stage/Delay.java (89%)
 rename src/{test/java/teetime/examples/throughput => main/java/teetime/variant}/methodcall/stage/Distributor.java (92%)
 rename src/{test/java/teetime/examples/throughput => main/java/teetime/variant}/methodcall/stage/EndStage.java (83%)
 rename src/{test/java/teetime/examples/throughput => main/java/teetime/variant}/methodcall/stage/Merger.java (91%)
 rename src/{test/java/teetime/examples/throughput => main/java/teetime/variant}/methodcall/stage/NoopFilter.java (93%)
 rename src/{test/java/teetime/examples/throughput => main/java/teetime/variant}/methodcall/stage/ObjectProducer.java (95%)
 rename src/{test/java/teetime/examples/throughput => main/java/teetime/variant}/methodcall/stage/Relay.java (90%)
 rename src/{test/java/teetime/examples/throughput => main/java/teetime/variant}/methodcall/stage/Sink.java (79%)
 rename src/{test/java/teetime/examples/throughput => main/java/teetime/variant}/methodcall/stage/StartTimestampFilter.java (90%)
 rename src/{test/java/teetime/examples/throughput => main/java/teetime/variant}/methodcall/stage/StopTimestampFilter.java (90%)
 delete mode 100644 src/test/java/teetime/examples/throughput/methodcall/OnDisableListener.java
 rename src/test/java/teetime/{ => variant/explicitScheduling}/examples/recordReader/RecordReaderAnalysisTest.java (93%)
 rename src/test/java/teetime/{ => variant/explicitScheduling}/examples/throughput/ThroughputAnalysisTest.java (93%)
 rename src/test/java/teetime/{ => variant/explicitScheduling}/examples/throughput/ThroughputTimestampAnalysisTest.java (90%)
 rename src/test/java/teetime/{examples/throughput => variant/methodcall/examples/experiment01}/MethodCallThoughputTimestampAnalysis1Test.java (92%)
 rename src/test/java/teetime/{examples/throughput/methodcall => variant/methodcall/examples/experiment01}/MethodCallThroughputAnalysis1.java (85%)
 rename src/test/java/teetime/{examples/throughput => variant/methodcall/examples/experiment02}/MethodCallThoughputTimestampAnalysis2Test.java (92%)
 rename src/test/java/teetime/{examples/throughput/methodcall => variant/methodcall/examples/experiment02}/MethodCallThroughputAnalysis2.java (86%)
 rename src/test/java/teetime/{examples/throughput => variant/methodcall/examples/experiment03}/MethodCallThoughputTimestampAnalysis3Test.java (92%)
 rename src/test/java/teetime/{examples/throughput/methodcall => variant/methodcall/examples/experiment03}/MethodCallThroughputAnalysis3.java (86%)
 rename src/test/java/teetime/{examples/throughput => variant/methodcall/examples/experiment04}/MethodCallThoughputTimestampAnalysis4Test.java (92%)
 rename src/test/java/teetime/{examples/throughput/methodcall => variant/methodcall/examples/experiment04}/MethodCallThroughputAnalysis4.java (86%)
 rename src/test/java/teetime/{examples/throughput => variant/methodcall/examples/experiment05}/MethodCallThoughputTimestampAnalysis5Test.java (92%)
 rename src/test/java/teetime/{examples/throughput/methodcall => variant/methodcall/examples/experiment05}/MethodCallThroughputAnalysis5.java (86%)
 rename src/test/java/teetime/{examples/throughput => variant/methodcall/examples/experiment06}/MethodCallThoughputTimestampAnalysis6Test.java (92%)
 rename src/test/java/teetime/{examples/throughput/methodcall => variant/methodcall/examples/experiment06}/MethodCallThroughputAnalysis6.java (98%)
 rename src/test/java/teetime/{examples/throughput => variant/methodcall/examples/experiment07}/MethodCallThoughputTimestampAnalysis7Test.java (92%)
 rename src/test/java/teetime/{examples/throughput/methodcall => variant/methodcall/examples/experiment07}/MethodCallThroughputAnalysis7.java (87%)
 rename src/test/java/teetime/{examples/throughput => variant/methodcall/examples/experiment08}/MethodCallThoughputTimestampAnalysis8Test.java (92%)
 rename src/test/java/teetime/{examples/throughput/methodcall => variant/methodcall/examples/experiment08}/MethodCallThroughputAnalysis8.java (86%)
 rename src/test/java/teetime/{examples/throughput => variant/methodcall/examples/experiment09}/MethodCallThoughputTimestampAnalysis9Test.java (92%)
 rename src/test/java/teetime/{examples/throughput/methodcall => variant/methodcall/examples/experiment09}/MethodCallThroughputAnalysis9.java (83%)
 rename src/test/java/teetime/{examples/throughput => variant/methodcall/examples/experiment10}/MethodCallThoughputTimestampAnalysis10Test.java (92%)
 rename src/test/java/teetime/{examples/throughput/methodcall => variant/methodcall/examples/experiment10}/MethodCallThroughputAnalysis10.java (83%)
 rename src/test/java/teetime/{examples/throughput => variant/methodcall/examples/experiment11}/MethodCallThoughputTimestampAnalysis11Test.java (92%)
 rename src/test/java/teetime/{examples/throughput/methodcall => variant/methodcall/examples/experiment11}/MethodCallThroughputAnalysis11.java (85%)
 rename src/test/java/teetime/{examples/throughput => variant/methodcall/examples/experiment12}/MethodCallThoughputTimestampAnalysis12Test.java (92%)
 rename src/test/java/teetime/{examples/throughput/methodcall => variant/methodcall/examples/experiment12}/MethodCallThroughputAnalysis12.java (84%)
 rename src/test/java/teetime/{examples/throughput => variant/methodcall/examples/experiment13}/MethodCallThoughputTimestampAnalysis13Test.java (92%)
 rename src/test/java/teetime/{examples/throughput/methodcall => variant/methodcall/examples/experiment13}/MethodCallThroughputAnalysis13.java (84%)
 rename src/test/java/teetime/{examples/throughput => variant/methodcall/examples/experiment14}/MethodCallThoughputTimestampAnalysis14Test.java (92%)
 rename src/test/java/teetime/{examples/throughput/methodcall => variant/methodcall/examples/experiment14}/MethodCallThroughputAnalysis14.java (83%)
 rename src/test/java/teetime/{examples/throughput => variant/methodcall/examples/experiment15}/MethodCallThoughputTimestampAnalysis15Test.java (92%)
 rename src/test/java/teetime/{examples/throughput/methodcall => variant/methodcall/examples/experiment15}/MethodCallThroughputAnalysis15.java (82%)
 rename src/test/java/teetime/{examples/throughput => variant/methodcall/examples/experiment16}/MethodCallThoughputTimestampAnalysis16Test.java (94%)
 rename src/test/java/teetime/{examples/throughput/methodcall => variant/methodcall/examples/experiment16}/MethodCallThroughputAnalysis16.java (86%)
 rename src/test/java/teetime/{examples/throughput => variant/methodcall/examples/experiment17}/MethodCallThoughputTimestampAnalysis17Test.java (92%)
 rename src/test/java/teetime/{examples/throughput/methodcall => variant/methodcall/examples/experiment17}/MethodCallThroughputAnalysis17.java (86%)
 rename src/test/java/teetime/{examples/throughput/methodcall => variant/methodcall/examples/experiment18}/MethodCallThroughputAnalysis18.java (85%)

diff --git a/src/main/java/experiment/Experiment1.java b/src/main/java/experiment/Experiment1.java
index e663f583..ef49b2c0 100644
--- a/src/main/java/experiment/Experiment1.java
+++ b/src/main/java/experiment/Experiment1.java
@@ -24,15 +24,15 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Callable;
 
-import teetime.framework.concurrent.StageTerminationPolicy;
-import teetime.framework.concurrent.WorkerThread;
-import teetime.framework.core.Analysis;
-import teetime.framework.core.IStage;
-import teetime.framework.core.Pipeline;
-import teetime.framework.sequential.MethodCallPipe;
-import teetime.framework.sequential.QueuePipe;
-import teetime.stage.NoopFilter;
 import teetime.util.StatisticsUtil;
+import teetime.variant.explicitScheduling.framework.concurrent.StageTerminationPolicy;
+import teetime.variant.explicitScheduling.framework.concurrent.WorkerThread;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.explicitScheduling.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.core.Pipeline;
+import teetime.variant.explicitScheduling.framework.sequential.MethodCallPipe;
+import teetime.variant.explicitScheduling.framework.sequential.QueuePipe;
+import teetime.variant.explicitScheduling.stage.NoopFilter;
 
 import kieker.analysis.AnalysisController;
 import kieker.analysis.IAnalysisController;
@@ -138,7 +138,7 @@ public class Experiment1 {
 			@SuppressWarnings("unchecked")
 			final NoopFilter<Object>[] noopFilters = new NoopFilter[numberOfFilters];
 			// create stages
-			final teetime.stage.basic.ObjectProducer<Object> objectProducer = new teetime.stage.basic.ObjectProducer<Object>(
+			final teetime.variant.explicitScheduling.stage.basic.ObjectProducer<Object> objectProducer = new teetime.variant.explicitScheduling.stage.basic.ObjectProducer<Object>(
 					numberOfObjectsToSend, new Callable<Object>() {
 						@Override
 						public Object call() throws Exception {
@@ -206,7 +206,7 @@ public class Experiment1 {
 			@SuppressWarnings("unchecked")
 			final NoopFilter<Object>[] noopFilters = new NoopFilter[numberOfFilters];
 			// create stages
-			final teetime.stage.basic.ObjectProducer<Object> objectProducer = new teetime.stage.basic.ObjectProducer<Object>(
+			final teetime.variant.explicitScheduling.stage.basic.ObjectProducer<Object> objectProducer = new teetime.variant.explicitScheduling.stage.basic.ObjectProducer<Object>(
 					numberOfObjectsToSend, new Callable<Object>() {
 						@Override
 						public Object call() throws Exception {
diff --git a/src/main/java/experiment/Experiment2.java b/src/main/java/experiment/Experiment2.java
index 9b8a7962..13c08fc8 100644
--- a/src/main/java/experiment/Experiment2.java
+++ b/src/main/java/experiment/Experiment2.java
@@ -33,15 +33,16 @@ import kieker.analysis.stage.ObjectProducer;
 import kieker.analysis.stage.StartTimestampFilter;
 import kieker.analysis.stage.StopTimestampFilter;
 import kieker.common.configuration.Configuration;
-import teetime.examples.throughput.TimestampObject;
-import teetime.framework.concurrent.WorkerThread;
-import teetime.framework.core.Analysis;
-import teetime.framework.core.IStage;
-import teetime.framework.core.Pipeline;
-import teetime.framework.sequential.MethodCallPipe;
-import teetime.framework.sequential.QueuePipe;
-import teetime.stage.NoopFilter;
+
 import teetime.util.StatisticsUtil;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.concurrent.WorkerThread;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.explicitScheduling.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.core.Pipeline;
+import teetime.variant.explicitScheduling.framework.sequential.MethodCallPipe;
+import teetime.variant.explicitScheduling.framework.sequential.QueuePipe;
+import teetime.variant.explicitScheduling.stage.NoopFilter;
 
 /**
  * @author Nils Christian Ehmke
@@ -146,19 +147,19 @@ public class Experiment2 {
 			@SuppressWarnings("unchecked")
 			final NoopFilter<TimestampObject>[] noopFilters = new NoopFilter[numberOfFilters];
 			// create stages
-			final teetime.stage.basic.ObjectProducer<TimestampObject> objectProducer = new teetime.stage.basic.ObjectProducer<TimestampObject>(
+			final teetime.variant.explicitScheduling.stage.basic.ObjectProducer<TimestampObject> objectProducer = new teetime.variant.explicitScheduling.stage.basic.ObjectProducer<TimestampObject>(
 					numberOfObjectsToSend, new Callable<TimestampObject>() {
 						@Override
 						public TimestampObject call() throws Exception {
 							return new TimestampObject();
 						}
 					});
-			final teetime.stage.StartTimestampFilter startTimestampFilter = new teetime.stage.StartTimestampFilter();
+			final teetime.variant.explicitScheduling.stage.StartTimestampFilter startTimestampFilter = new teetime.variant.explicitScheduling.stage.StartTimestampFilter();
 			for (int i = 0; i < noopFilters.length; i++) {
 				noopFilters[i] = new NoopFilter<TimestampObject>();
 			}
-			final teetime.stage.StopTimestampFilter stopTimestampFilter = new teetime.stage.StopTimestampFilter();
-			final teetime.stage.CollectorSink<TimestampObject> collectorSink = new teetime.stage.CollectorSink<TimestampObject>(
+			final teetime.variant.explicitScheduling.stage.StopTimestampFilter stopTimestampFilter = new teetime.variant.explicitScheduling.stage.StopTimestampFilter();
+			final teetime.variant.explicitScheduling.stage.CollectorSink<TimestampObject> collectorSink = new teetime.variant.explicitScheduling.stage.CollectorSink<TimestampObject>(
 					this.timestampObjects);
 
 			// add each stage to a stage list
diff --git a/src/main/java/kieker/analysis/examples/ThroughputTimestampAnalysis.java b/src/main/java/kieker/analysis/examples/ThroughputTimestampAnalysis.java
index 483957ad..83924f8c 100644
--- a/src/main/java/kieker/analysis/examples/ThroughputTimestampAnalysis.java
+++ b/src/main/java/kieker/analysis/examples/ThroughputTimestampAnalysis.java
@@ -27,7 +27,8 @@ import kieker.analysis.stage.ObjectProducer;
 import kieker.analysis.stage.StartTimestampFilter;
 import kieker.analysis.stage.StopTimestampFilter;
 import kieker.common.configuration.Configuration;
-import teetime.examples.throughput.TimestampObject;
+
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 /**
  * @author Nils Christian Ehmke
diff --git a/src/main/java/kieker/analysis/stage/MappingFileParser.java b/src/main/java/kieker/analysis/stage/MappingFileParser.java
index 149c93f8..882ffbdd 100644
--- a/src/main/java/kieker/analysis/stage/MappingFileParser.java
+++ b/src/main/java/kieker/analysis/stage/MappingFileParser.java
@@ -25,7 +25,8 @@ import java.util.Map;
 
 import kieker.common.logging.Log;
 import kieker.common.util.filesystem.FSUtil;
-import teetime.stage.kieker.className.ClassNameRegistry;
+
+import teetime.variant.explicitScheduling.stage.kieker.className.ClassNameRegistry;
 
 
 /**
diff --git a/src/main/java/kieker/analysis/stage/RecordFromBinaryFileCreator.java b/src/main/java/kieker/analysis/stage/RecordFromBinaryFileCreator.java
index e86bf1e0..31598c30 100644
--- a/src/main/java/kieker/analysis/stage/RecordFromBinaryFileCreator.java
+++ b/src/main/java/kieker/analysis/stage/RecordFromBinaryFileCreator.java
@@ -20,8 +20,8 @@ import java.io.EOFException;
 import java.io.File;
 import java.io.IOException;
 
-import teetime.stage.kieker.className.ClassNameRegistry;
-import teetime.stage.kieker.className.ClassNameRegistryRepository;
+import teetime.variant.explicitScheduling.stage.kieker.className.ClassNameRegistry;
+import teetime.variant.explicitScheduling.stage.kieker.className.ClassNameRegistryRepository;
 
 import kieker.common.exception.MonitoringRecordException;
 import kieker.common.logging.Log;
diff --git a/src/main/java/kieker/analysis/stage/RecordFromTextLineCreator.java b/src/main/java/kieker/analysis/stage/RecordFromTextLineCreator.java
index 61f9d20f..e428980c 100644
--- a/src/main/java/kieker/analysis/stage/RecordFromTextLineCreator.java
+++ b/src/main/java/kieker/analysis/stage/RecordFromTextLineCreator.java
@@ -23,9 +23,10 @@ import kieker.common.exception.UnknownRecordTypeException;
 import kieker.common.record.AbstractMonitoringRecord;
 import kieker.common.record.IMonitoringRecord;
 import kieker.common.record.controlflow.OperationExecutionRecord;
-import teetime.stage.MappingException;
-import teetime.stage.kieker.className.ClassNameRegistry;
-import teetime.stage.kieker.className.ClassNameRegistryRepository;
+
+import teetime.variant.explicitScheduling.stage.MappingException;
+import teetime.variant.explicitScheduling.stage.kieker.className.ClassNameRegistry;
+import teetime.variant.explicitScheduling.stage.kieker.className.ClassNameRegistryRepository;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/kieker/analysis/stage/StartTimestampFilter.java b/src/main/java/kieker/analysis/stage/StartTimestampFilter.java
index f3b61b05..0daf1ad5 100644
--- a/src/main/java/kieker/analysis/stage/StartTimestampFilter.java
+++ b/src/main/java/kieker/analysis/stage/StartTimestampFilter.java
@@ -21,7 +21,8 @@ import kieker.analysis.plugin.annotation.OutputPort;
 import kieker.analysis.plugin.annotation.Plugin;
 import kieker.analysis.plugin.filter.AbstractFilterPlugin;
 import kieker.common.configuration.Configuration;
-import teetime.examples.throughput.TimestampObject;
+
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 @Plugin(outputPorts = @OutputPort(name = StartTimestampFilter.OUTPUT_PORT_NAME))
 public class StartTimestampFilter extends AbstractFilterPlugin {
diff --git a/src/main/java/kieker/analysis/stage/StopTimestampFilter.java b/src/main/java/kieker/analysis/stage/StopTimestampFilter.java
index eac2426d..db723d7b 100644
--- a/src/main/java/kieker/analysis/stage/StopTimestampFilter.java
+++ b/src/main/java/kieker/analysis/stage/StopTimestampFilter.java
@@ -21,7 +21,8 @@ import kieker.analysis.plugin.annotation.OutputPort;
 import kieker.analysis.plugin.annotation.Plugin;
 import kieker.analysis.plugin.filter.AbstractFilterPlugin;
 import kieker.common.configuration.Configuration;
-import teetime.examples.throughput.TimestampObject;
+
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 @Plugin(outputPorts = @OutputPort(name = StopTimestampFilter.OUTPUT_PORT_NAME))
 public class StopTimestampFilter extends AbstractFilterPlugin {
diff --git a/src/main/java/teetime/framework/core/ReservableContext.java b/src/main/java/teetime/framework/core/ReservableContext.java
deleted file mode 100644
index 26eda806..00000000
--- a/src/main/java/teetime/framework/core/ReservableContext.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package teetime.framework.core;
-
-public class ReservableContext {
-
-}
diff --git a/src/test/java/teetime/examples/throughput/methodcall/ArrayWrapper.java b/src/main/java/teetime/util/ArrayWrapper.java
similarity index 91%
rename from src/test/java/teetime/examples/throughput/methodcall/ArrayWrapper.java
rename to src/main/java/teetime/util/ArrayWrapper.java
index 7cb232b2..96e17fb5 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/ArrayWrapper.java
+++ b/src/main/java/teetime/util/ArrayWrapper.java
@@ -1,4 +1,4 @@
-package teetime.examples.throughput.methodcall;
+package teetime.util;
 
 public final class ArrayWrapper<T> {
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/ConstructorClosure.java b/src/main/java/teetime/util/ConstructorClosure.java
similarity index 60%
rename from src/test/java/teetime/examples/throughput/methodcall/ConstructorClosure.java
rename to src/main/java/teetime/util/ConstructorClosure.java
index 9577fef6..4fefbf48 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/ConstructorClosure.java
+++ b/src/main/java/teetime/util/ConstructorClosure.java
@@ -1,4 +1,4 @@
-package teetime.examples.throughput.methodcall;
+package teetime.util;
 
 public interface ConstructorClosure<O> {
 
diff --git a/src/main/java/teetime/util/StatisticsUtil.java b/src/main/java/teetime/util/StatisticsUtil.java
index 5690d1ce..e1dd1fff 100644
--- a/src/main/java/teetime/util/StatisticsUtil.java
+++ b/src/main/java/teetime/util/StatisticsUtil.java
@@ -23,7 +23,7 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.concurrent.TimeUnit;
 
-import teetime.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/examples/countWords/ConcurrentCountWordsAnalysis.java b/src/main/java/teetime/variant/explicitScheduling/examples/countWords/ConcurrentCountWordsAnalysis.java
similarity index 87%
rename from src/main/java/teetime/examples/countWords/ConcurrentCountWordsAnalysis.java
rename to src/main/java/teetime/variant/explicitScheduling/examples/countWords/ConcurrentCountWordsAnalysis.java
index 26d7ecc9..5ebe8aff 100644
--- a/src/main/java/teetime/examples/countWords/ConcurrentCountWordsAnalysis.java
+++ b/src/main/java/teetime/variant/explicitScheduling/examples/countWords/ConcurrentCountWordsAnalysis.java
@@ -14,32 +14,32 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.examples.countWords;
+package teetime.variant.explicitScheduling.examples.countWords;
 
 import java.io.File;
 import java.util.LinkedList;
 import java.util.List;
 
-import teetime.framework.concurrent.ConcurrentWorkStealingPipe;
-import teetime.framework.concurrent.ConcurrentWorkStealingPipeFactory;
-import teetime.framework.concurrent.SingleProducerSingleConsumerPipe;
-import teetime.framework.concurrent.StageTerminationPolicy;
-import teetime.framework.concurrent.WorkerThread;
-import teetime.framework.core.Analysis;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IInputPort.PortState;
-import teetime.framework.core.IOutputPort;
-import teetime.framework.core.IPipeline;
-import teetime.framework.core.ISink;
-import teetime.framework.core.ISource;
-import teetime.framework.core.IStage;
-import teetime.framework.core.Pipeline;
-import teetime.framework.sequential.MethodCallPipe;
-import teetime.framework.sequential.QueuePipe;
-import teetime.stage.basic.RepeaterSource;
-import teetime.stage.basic.distributor.Distributor;
-import teetime.stage.basic.merger.Merger;
 import teetime.util.Pair;
+import teetime.variant.explicitScheduling.framework.concurrent.ConcurrentWorkStealingPipe;
+import teetime.variant.explicitScheduling.framework.concurrent.ConcurrentWorkStealingPipeFactory;
+import teetime.variant.explicitScheduling.framework.concurrent.SingleProducerSingleConsumerPipe;
+import teetime.variant.explicitScheduling.framework.concurrent.StageTerminationPolicy;
+import teetime.variant.explicitScheduling.framework.concurrent.WorkerThread;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.IPipeline;
+import teetime.variant.explicitScheduling.framework.core.ISink;
+import teetime.variant.explicitScheduling.framework.core.ISource;
+import teetime.variant.explicitScheduling.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.core.Pipeline;
+import teetime.variant.explicitScheduling.framework.core.IInputPort.PortState;
+import teetime.variant.explicitScheduling.framework.sequential.MethodCallPipe;
+import teetime.variant.explicitScheduling.framework.sequential.QueuePipe;
+import teetime.variant.explicitScheduling.stage.basic.RepeaterSource;
+import teetime.variant.explicitScheduling.stage.basic.distributor.Distributor;
+import teetime.variant.explicitScheduling.stage.basic.merger.Merger;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/examples/countWords/CountWordsAnalysis.java b/src/main/java/teetime/variant/explicitScheduling/examples/countWords/CountWordsAnalysis.java
similarity index 85%
rename from src/main/java/teetime/examples/countWords/CountWordsAnalysis.java
rename to src/main/java/teetime/variant/explicitScheduling/examples/countWords/CountWordsAnalysis.java
index 1760d8ad..feba3ab0 100644
--- a/src/main/java/teetime/examples/countWords/CountWordsAnalysis.java
+++ b/src/main/java/teetime/variant/explicitScheduling/examples/countWords/CountWordsAnalysis.java
@@ -14,23 +14,23 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.examples.countWords;
+package teetime.variant.explicitScheduling.examples.countWords;
 
 import java.io.File;
 import java.util.LinkedList;
 import java.util.List;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Analysis;
-import teetime.framework.core.IInputPort.PortState;
-import teetime.framework.core.IPipeline;
-import teetime.framework.core.IStage;
-import teetime.framework.core.Pipeline;
-import teetime.framework.sequential.MethodCallPipe;
-import teetime.stage.basic.RepeaterSource;
-import teetime.stage.basic.distributor.Distributor;
-import teetime.stage.basic.merger.Merger;
 import teetime.util.Pair;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.explicitScheduling.framework.core.IPipeline;
+import teetime.variant.explicitScheduling.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.core.Pipeline;
+import teetime.variant.explicitScheduling.framework.core.IInputPort.PortState;
+import teetime.variant.explicitScheduling.framework.sequential.MethodCallPipe;
+import teetime.variant.explicitScheduling.stage.basic.RepeaterSource;
+import teetime.variant.explicitScheduling.stage.basic.distributor.Distributor;
+import teetime.variant.explicitScheduling.stage.basic.merger.Merger;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/examples/countWords/CountWordsStage.java b/src/main/java/teetime/variant/explicitScheduling/examples/countWords/CountWordsStage.java
similarity index 87%
rename from src/main/java/teetime/examples/countWords/CountWordsStage.java
rename to src/main/java/teetime/variant/explicitScheduling/examples/countWords/CountWordsStage.java
index 08839930..33e8f9c2 100644
--- a/src/main/java/teetime/examples/countWords/CountWordsStage.java
+++ b/src/main/java/teetime/variant/explicitScheduling/examples/countWords/CountWordsStage.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.examples.countWords;
+package teetime.variant.explicitScheduling.examples.countWords;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -24,11 +24,11 @@ import java.io.IOException;
 import java.io.InputStreamReader;
 import java.util.regex.Pattern;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
 import teetime.util.Pair;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/examples/countWords/DirectoryName2Files.java b/src/main/java/teetime/variant/explicitScheduling/examples/countWords/DirectoryName2Files.java
similarity index 83%
rename from src/main/java/teetime/examples/countWords/DirectoryName2Files.java
rename to src/main/java/teetime/variant/explicitScheduling/examples/countWords/DirectoryName2Files.java
index 5c99f80c..54f422be 100644
--- a/src/main/java/teetime/examples/countWords/DirectoryName2Files.java
+++ b/src/main/java/teetime/variant/explicitScheduling/examples/countWords/DirectoryName2Files.java
@@ -14,14 +14,14 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.examples.countWords;
+package teetime.variant.explicitScheduling.examples.countWords;
 
 import java.io.File;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/examples/countWords/OutputWordsCountSink.java b/src/main/java/teetime/variant/explicitScheduling/examples/countWords/OutputWordsCountSink.java
similarity index 87%
rename from src/main/java/teetime/examples/countWords/OutputWordsCountSink.java
rename to src/main/java/teetime/variant/explicitScheduling/examples/countWords/OutputWordsCountSink.java
index 4e9b54a5..8ac5dfe5 100644
--- a/src/main/java/teetime/examples/countWords/OutputWordsCountSink.java
+++ b/src/main/java/teetime/variant/explicitScheduling/examples/countWords/OutputWordsCountSink.java
@@ -14,14 +14,14 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.examples.countWords;
+package teetime.variant.explicitScheduling.examples.countWords;
 
 import java.io.File;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
 import teetime.util.Pair;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/examples/countWords/QueuedCountWordsAnalysis.java b/src/main/java/teetime/variant/explicitScheduling/examples/countWords/QueuedCountWordsAnalysis.java
similarity index 82%
rename from src/main/java/teetime/examples/countWords/QueuedCountWordsAnalysis.java
rename to src/main/java/teetime/variant/explicitScheduling/examples/countWords/QueuedCountWordsAnalysis.java
index e686457e..e77ac45f 100644
--- a/src/main/java/teetime/examples/countWords/QueuedCountWordsAnalysis.java
+++ b/src/main/java/teetime/variant/explicitScheduling/examples/countWords/QueuedCountWordsAnalysis.java
@@ -14,26 +14,26 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.examples.countWords;
+package teetime.variant.explicitScheduling.examples.countWords;
 
 import java.io.File;
 import java.util.LinkedList;
 import java.util.List;
 
-import teetime.framework.concurrent.StageTerminationPolicy;
-import teetime.framework.concurrent.WorkerThread;
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Analysis;
-import teetime.framework.core.IInputPort.PortState;
-import teetime.framework.core.IPipeline;
-import teetime.framework.core.IStage;
-import teetime.framework.core.Pipeline;
-import teetime.framework.sequential.MethodCallPipe;
-import teetime.framework.sequential.QueuePipe;
-import teetime.stage.basic.RepeaterSource;
-import teetime.stage.basic.distributor.Distributor;
-import teetime.stage.basic.merger.Merger;
 import teetime.util.Pair;
+import teetime.variant.explicitScheduling.framework.concurrent.StageTerminationPolicy;
+import teetime.variant.explicitScheduling.framework.concurrent.WorkerThread;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.explicitScheduling.framework.core.IPipeline;
+import teetime.variant.explicitScheduling.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.core.Pipeline;
+import teetime.variant.explicitScheduling.framework.core.IInputPort.PortState;
+import teetime.variant.explicitScheduling.framework.sequential.MethodCallPipe;
+import teetime.variant.explicitScheduling.framework.sequential.QueuePipe;
+import teetime.variant.explicitScheduling.stage.basic.RepeaterSource;
+import teetime.variant.explicitScheduling.stage.basic.distributor.Distributor;
+import teetime.variant.explicitScheduling.stage.basic.merger.Merger;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/examples/countingObjects/CountingObjectsAnalysis.java b/src/main/java/teetime/variant/explicitScheduling/examples/countingObjects/CountingObjectsAnalysis.java
similarity index 84%
rename from src/main/java/teetime/examples/countingObjects/CountingObjectsAnalysis.java
rename to src/main/java/teetime/variant/explicitScheduling/examples/countingObjects/CountingObjectsAnalysis.java
index cee84c0b..4e91a737 100644
--- a/src/main/java/teetime/examples/countingObjects/CountingObjectsAnalysis.java
+++ b/src/main/java/teetime/variant/explicitScheduling/examples/countingObjects/CountingObjectsAnalysis.java
@@ -14,22 +14,22 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.examples.countingObjects;
+package teetime.variant.explicitScheduling.examples.countingObjects;
 
 import java.io.File;
 import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
 
-import teetime.examples.countWords.DirectoryName2Files;
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Analysis;
-import teetime.framework.core.IPipeline;
-import teetime.framework.core.IStage;
-import teetime.framework.sequential.MethodCallPipe;
-import teetime.stage.TypeLoggerFilter;
-import teetime.stage.basic.RepeaterSource;
-import teetime.stage.composite.CycledCountingFilter;
+import teetime.variant.explicitScheduling.examples.countWords.DirectoryName2Files;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.explicitScheduling.framework.core.IPipeline;
+import teetime.variant.explicitScheduling.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.sequential.MethodCallPipe;
+import teetime.variant.explicitScheduling.stage.TypeLoggerFilter;
+import teetime.variant.explicitScheduling.stage.basic.RepeaterSource;
+import teetime.variant.explicitScheduling.stage.composite.CycledCountingFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/examples/recordReader/RecordReaderAnalysis.java b/src/main/java/teetime/variant/explicitScheduling/examples/recordReader/RecordReaderAnalysis.java
similarity index 78%
rename from src/main/java/teetime/examples/recordReader/RecordReaderAnalysis.java
rename to src/main/java/teetime/variant/explicitScheduling/examples/recordReader/RecordReaderAnalysis.java
index 360629b6..670aca57 100644
--- a/src/main/java/teetime/examples/recordReader/RecordReaderAnalysis.java
+++ b/src/main/java/teetime/variant/explicitScheduling/examples/recordReader/RecordReaderAnalysis.java
@@ -13,29 +13,29 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.recordReader;
+package teetime.variant.explicitScheduling.examples.recordReader;
 
 import java.io.File;
 import java.util.LinkedList;
 import java.util.List;
 
-import teetime.framework.concurrent.StageTerminationPolicy;
-import teetime.framework.concurrent.WorkerThread;
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Analysis;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
-import teetime.framework.core.IPipe;
-import teetime.framework.core.IPipeline;
-import teetime.framework.core.ISink;
-import teetime.framework.core.ISource;
-import teetime.framework.core.IStage;
-import teetime.framework.sequential.MethodCallPipe;
-import teetime.framework.sequential.QueuePipe;
-import teetime.framework.util.BaseStage2StageExtractor;
-import teetime.stage.CollectorSink;
-import teetime.stage.kieker.File2RecordFilter;
-import teetime.stage.kieker.className.ClassNameRegistryRepository;
+import teetime.variant.explicitScheduling.framework.concurrent.StageTerminationPolicy;
+import teetime.variant.explicitScheduling.framework.concurrent.WorkerThread;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.IPipe;
+import teetime.variant.explicitScheduling.framework.core.IPipeline;
+import teetime.variant.explicitScheduling.framework.core.ISink;
+import teetime.variant.explicitScheduling.framework.core.ISource;
+import teetime.variant.explicitScheduling.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.sequential.MethodCallPipe;
+import teetime.variant.explicitScheduling.framework.sequential.QueuePipe;
+import teetime.variant.explicitScheduling.framework.util.BaseStage2StageExtractor;
+import teetime.variant.explicitScheduling.stage.CollectorSink;
+import teetime.variant.explicitScheduling.stage.kieker.File2RecordFilter;
+import teetime.variant.explicitScheduling.stage.kieker.className.ClassNameRegistryRepository;
 
 import kieker.common.record.IMonitoringRecord;
 
diff --git a/src/main/java/teetime/examples/throughput/ThroughputAnalysis.java b/src/main/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputAnalysis.java
similarity index 81%
rename from src/main/java/teetime/examples/throughput/ThroughputAnalysis.java
rename to src/main/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputAnalysis.java
index 65dfa7fd..796ba92d 100644
--- a/src/main/java/teetime/examples/throughput/ThroughputAnalysis.java
+++ b/src/main/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputAnalysis.java
@@ -13,22 +13,22 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.explicitScheduling.examples.throughput;
 
 import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.concurrent.Callable;
 
-import teetime.framework.concurrent.StageTerminationPolicy;
-import teetime.framework.concurrent.WorkerThread;
-import teetime.framework.core.Analysis;
-import teetime.framework.core.IPipeline;
-import teetime.framework.core.IStage;
-import teetime.framework.core.Pipeline;
-import teetime.framework.sequential.QueuePipe;
-import teetime.stage.NoopFilter;
-import teetime.stage.basic.ObjectProducer;
+import teetime.variant.explicitScheduling.framework.concurrent.StageTerminationPolicy;
+import teetime.variant.explicitScheduling.framework.concurrent.WorkerThread;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.explicitScheduling.framework.core.IPipeline;
+import teetime.variant.explicitScheduling.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.core.Pipeline;
+import teetime.variant.explicitScheduling.framework.sequential.QueuePipe;
+import teetime.variant.explicitScheduling.stage.NoopFilter;
+import teetime.variant.explicitScheduling.stage.basic.ObjectProducer;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/examples/throughput/ThroughputTimestampAnalysis.java b/src/main/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputTimestampAnalysis.java
similarity index 86%
rename from src/main/java/teetime/examples/throughput/ThroughputTimestampAnalysis.java
rename to src/main/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputTimestampAnalysis.java
index 30faf7b8..ff70703f 100644
--- a/src/main/java/teetime/examples/throughput/ThroughputTimestampAnalysis.java
+++ b/src/main/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputTimestampAnalysis.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.explicitScheduling.examples.throughput;
 
 import java.util.Arrays;
 import java.util.Collection;
@@ -22,19 +22,19 @@ import java.util.List;
 import java.util.concurrent.Callable;
 import java.util.concurrent.TimeUnit;
 
-import teetime.framework.concurrent.StageTerminationPolicy;
-import teetime.framework.concurrent.WorkerThread;
-import teetime.framework.core.Analysis;
-import teetime.framework.core.IPipeline;
-import teetime.framework.core.IStage;
-import teetime.framework.core.Pipeline;
-import teetime.framework.sequential.MethodCallPipe;
-import teetime.framework.sequential.ReservableQueuePipe;
-import teetime.stage.CollectorSink;
-import teetime.stage.NoopFilter;
-import teetime.stage.StartTimestampFilter;
-import teetime.stage.StopTimestampFilter;
-import teetime.stage.basic.ObjectProducer;
+import teetime.variant.explicitScheduling.framework.concurrent.StageTerminationPolicy;
+import teetime.variant.explicitScheduling.framework.concurrent.WorkerThread;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.explicitScheduling.framework.core.IPipeline;
+import teetime.variant.explicitScheduling.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.core.Pipeline;
+import teetime.variant.explicitScheduling.framework.sequential.MethodCallPipe;
+import teetime.variant.explicitScheduling.framework.sequential.ReservableQueuePipe;
+import teetime.variant.explicitScheduling.stage.CollectorSink;
+import teetime.variant.explicitScheduling.stage.NoopFilter;
+import teetime.variant.explicitScheduling.stage.StartTimestampFilter;
+import teetime.variant.explicitScheduling.stage.StopTimestampFilter;
+import teetime.variant.explicitScheduling.stage.basic.ObjectProducer;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/examples/throughput/TimestampObject.java b/src/main/java/teetime/variant/explicitScheduling/examples/throughput/TimestampObject.java
similarity index 96%
rename from src/main/java/teetime/examples/throughput/TimestampObject.java
rename to src/main/java/teetime/variant/explicitScheduling/examples/throughput/TimestampObject.java
index 9aa93791..6e875bd9 100644
--- a/src/main/java/teetime/examples/throughput/TimestampObject.java
+++ b/src/main/java/teetime/variant/explicitScheduling/examples/throughput/TimestampObject.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.explicitScheduling.examples.throughput;
 
 /**
  * Object for performance evaluation
diff --git a/src/main/java/teetime/examples/traceReconstruction/TraceAnalysis.java b/src/main/java/teetime/variant/explicitScheduling/examples/traceReconstruction/TraceAnalysis.java
similarity index 91%
rename from src/main/java/teetime/examples/traceReconstruction/TraceAnalysis.java
rename to src/main/java/teetime/variant/explicitScheduling/examples/traceReconstruction/TraceAnalysis.java
index 29ce10a0..c54039f7 100644
--- a/src/main/java/teetime/examples/traceReconstruction/TraceAnalysis.java
+++ b/src/main/java/teetime/variant/explicitScheduling/examples/traceReconstruction/TraceAnalysis.java
@@ -13,11 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.traceReconstruction;
+package teetime.variant.explicitScheduling.examples.traceReconstruction;
 
 import kieker.common.util.filesystem.FSUtil;
-import teetime.framework.core.Analysis;
-import teetime.stage.predicate.FileExtensionPredicate;
+
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.explicitScheduling.stage.predicate.FileExtensionPredicate;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/examples/traceReconstruction/TraceReconstructionAnalysis.java b/src/main/java/teetime/variant/explicitScheduling/examples/traceReconstruction/TraceReconstructionAnalysis.java
similarity index 75%
rename from src/main/java/teetime/examples/traceReconstruction/TraceReconstructionAnalysis.java
rename to src/main/java/teetime/variant/explicitScheduling/examples/traceReconstruction/TraceReconstructionAnalysis.java
index 94ed60cf..bd24e17e 100644
--- a/src/main/java/teetime/examples/traceReconstruction/TraceReconstructionAnalysis.java
+++ b/src/main/java/teetime/variant/explicitScheduling/examples/traceReconstruction/TraceReconstructionAnalysis.java
@@ -13,22 +13,22 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.traceReconstruction;
+package teetime.variant.explicitScheduling.examples.traceReconstruction;
 
 import java.util.LinkedList;
 import java.util.List;
 
-import teetime.framework.concurrent.StageTerminationPolicy;
-import teetime.framework.concurrent.WorkerThread;
-import teetime.framework.core.Analysis;
-import teetime.framework.core.IPipeline;
-import teetime.framework.core.IStage;
-import teetime.stage.FileExtensionFilter;
-import teetime.stage.io.File2TextLinesFilter;
-import teetime.stage.kieker.MonitoringLogDirectory2Files;
-import teetime.stage.kieker.className.ClassNameRegistryCreationFilter;
-import teetime.stage.kieker.className.ClassNameRegistryRepository;
-import teetime.stage.kieker.fileToRecord.textLine.TextLine2RecordFilter;
+import teetime.variant.explicitScheduling.framework.concurrent.StageTerminationPolicy;
+import teetime.variant.explicitScheduling.framework.concurrent.WorkerThread;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.explicitScheduling.framework.core.IPipeline;
+import teetime.variant.explicitScheduling.framework.core.IStage;
+import teetime.variant.explicitScheduling.stage.FileExtensionFilter;
+import teetime.variant.explicitScheduling.stage.io.File2TextLinesFilter;
+import teetime.variant.explicitScheduling.stage.kieker.MonitoringLogDirectory2Files;
+import teetime.variant.explicitScheduling.stage.kieker.className.ClassNameRegistryCreationFilter;
+import teetime.variant.explicitScheduling.stage.kieker.className.ClassNameRegistryRepository;
+import teetime.variant.explicitScheduling.stage.kieker.fileToRecord.textLine.TextLine2RecordFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/examples/traceReconstruction/TraceReconstructionAnalysis2.java b/src/main/java/teetime/variant/explicitScheduling/examples/traceReconstruction/TraceReconstructionAnalysis2.java
similarity index 76%
rename from src/main/java/teetime/examples/traceReconstruction/TraceReconstructionAnalysis2.java
rename to src/main/java/teetime/variant/explicitScheduling/examples/traceReconstruction/TraceReconstructionAnalysis2.java
index 7f2d41db..8ae9a9ef 100644
--- a/src/main/java/teetime/examples/traceReconstruction/TraceReconstructionAnalysis2.java
+++ b/src/main/java/teetime/variant/explicitScheduling/examples/traceReconstruction/TraceReconstructionAnalysis2.java
@@ -13,34 +13,34 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.traceReconstruction;
+package teetime.variant.explicitScheduling.examples.traceReconstruction;
 
 import java.util.LinkedList;
 import java.util.List;
 
-import teetime.framework.concurrent.StageTerminationPolicy;
-import teetime.framework.concurrent.WorkerThread;
-import teetime.framework.core.Analysis;
-import teetime.framework.core.IPipeline;
-import teetime.framework.core.IStage;
-import teetime.framework.core.Pipeline;
-import teetime.framework.sequential.QueuePipe;
-import teetime.stage.Cache;
-import teetime.stage.CountingFilter;
-import teetime.stage.InstanceOfFilter;
-import teetime.stage.io.File2TextLinesFilter;
-import teetime.stage.kieker.MonitoringLogDirectory2Files;
-import teetime.stage.kieker.className.ClassNameRegistryCreationFilter;
-import teetime.stage.kieker.className.ClassNameRegistryRepository;
-import teetime.stage.kieker.fileToRecord.textLine.TextLine2RecordFilter;
-import teetime.stage.kieker.traceReconstruction.TraceReconstructionFilter;
-import teetime.stage.predicate.IsIMonitoringRecordInRange;
-import teetime.stage.predicate.IsOperationExecutionRecordTraceIdPredicate;
-import teetime.stage.predicate.PredicateFilter;
-import teetime.stage.stringBuffer.StringBufferFilter;
-import teetime.stage.stringBuffer.handler.IMonitoringRecordHandler;
-import teetime.stage.stringBuffer.handler.StringHandler;
-import teetime.stage.util.TextLine;
+import teetime.variant.explicitScheduling.framework.concurrent.StageTerminationPolicy;
+import teetime.variant.explicitScheduling.framework.concurrent.WorkerThread;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.explicitScheduling.framework.core.IPipeline;
+import teetime.variant.explicitScheduling.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.core.Pipeline;
+import teetime.variant.explicitScheduling.framework.sequential.QueuePipe;
+import teetime.variant.explicitScheduling.stage.Cache;
+import teetime.variant.explicitScheduling.stage.CountingFilter;
+import teetime.variant.explicitScheduling.stage.InstanceOfFilter;
+import teetime.variant.explicitScheduling.stage.io.File2TextLinesFilter;
+import teetime.variant.explicitScheduling.stage.kieker.MonitoringLogDirectory2Files;
+import teetime.variant.explicitScheduling.stage.kieker.className.ClassNameRegistryCreationFilter;
+import teetime.variant.explicitScheduling.stage.kieker.className.ClassNameRegistryRepository;
+import teetime.variant.explicitScheduling.stage.kieker.fileToRecord.textLine.TextLine2RecordFilter;
+import teetime.variant.explicitScheduling.stage.kieker.traceReconstruction.TraceReconstructionFilter;
+import teetime.variant.explicitScheduling.stage.predicate.IsIMonitoringRecordInRange;
+import teetime.variant.explicitScheduling.stage.predicate.IsOperationExecutionRecordTraceIdPredicate;
+import teetime.variant.explicitScheduling.stage.predicate.PredicateFilter;
+import teetime.variant.explicitScheduling.stage.stringBuffer.StringBufferFilter;
+import teetime.variant.explicitScheduling.stage.stringBuffer.handler.IMonitoringRecordHandler;
+import teetime.variant.explicitScheduling.stage.stringBuffer.handler.StringHandler;
+import teetime.variant.explicitScheduling.stage.util.TextLine;
 
 import kieker.analysis.plugin.filter.flow.TraceEventRecords;
 import kieker.common.record.IMonitoringRecord;
diff --git a/src/main/java/teetime/framework/concurrent/ConcurrentPipeline.java.todo b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/ConcurrentPipeline.java.todo
similarity index 100%
rename from src/main/java/teetime/framework/concurrent/ConcurrentPipeline.java.todo
rename to src/main/java/teetime/variant/explicitScheduling/framework/concurrent/ConcurrentPipeline.java.todo
diff --git a/src/main/java/teetime/framework/concurrent/ConcurrentWorkStealingPipe.java b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/ConcurrentWorkStealingPipe.java
similarity index 89%
rename from src/main/java/teetime/framework/concurrent/ConcurrentWorkStealingPipe.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/concurrent/ConcurrentWorkStealingPipe.java
index fcffbda7..587d2990 100644
--- a/src/main/java/teetime/framework/concurrent/ConcurrentWorkStealingPipe.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/ConcurrentWorkStealingPipe.java
@@ -14,18 +14,18 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.framework.concurrent;
+package teetime.variant.explicitScheduling.framework.concurrent;
 
 import java.util.LinkedList;
 import java.util.List;
 
-import teetime.framework.concurrent.steal.IStealStrategy;
-import teetime.framework.core.AbstractPipe;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
-import teetime.framework.core.ISink;
-import teetime.framework.core.ISource;
 import teetime.util.concurrent.workstealing.CircularWorkStealingDeque;
+import teetime.variant.explicitScheduling.framework.concurrent.steal.IStealStrategy;
+import teetime.variant.explicitScheduling.framework.core.AbstractPipe;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.ISink;
+import teetime.variant.explicitScheduling.framework.core.ISource;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/framework/concurrent/ConcurrentWorkStealingPipeFactory.java b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/ConcurrentWorkStealingPipeFactory.java
similarity index 85%
rename from src/main/java/teetime/framework/concurrent/ConcurrentWorkStealingPipeFactory.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/concurrent/ConcurrentWorkStealingPipeFactory.java
index c05668c3..8251942c 100644
--- a/src/main/java/teetime/framework/concurrent/ConcurrentWorkStealingPipeFactory.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/ConcurrentWorkStealingPipeFactory.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.framework.concurrent;
+package teetime.variant.explicitScheduling.framework.concurrent;
 
 import java.util.LinkedList;
 import java.util.List;
 
-import teetime.framework.concurrent.steal.IStealStrategy;
-import teetime.framework.concurrent.steal.StealIfEmptyStrategy;
+import teetime.variant.explicitScheduling.framework.concurrent.steal.IStealStrategy;
+import teetime.variant.explicitScheduling.framework.concurrent.steal.StealIfEmptyStrategy;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/framework/concurrent/IStageScheduler.java b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/IStageScheduler.java
similarity index 89%
rename from src/main/java/teetime/framework/concurrent/IStageScheduler.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/concurrent/IStageScheduler.java
index c798ddb5..cfbb5e80 100644
--- a/src/main/java/teetime/framework/concurrent/IStageScheduler.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/IStageScheduler.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.framework.concurrent;
+package teetime.variant.explicitScheduling.framework.concurrent;
 
-import teetime.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.core.IStage;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/framework/concurrent/IStageWorkList.java b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/IStageWorkList.java
similarity index 85%
rename from src/main/java/teetime/framework/concurrent/IStageWorkList.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/concurrent/IStageWorkList.java
index ee3073b9..d0d1fc1e 100644
--- a/src/main/java/teetime/framework/concurrent/IStageWorkList.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/IStageWorkList.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.framework.concurrent;
+package teetime.variant.explicitScheduling.framework.concurrent;
 
 import java.util.Collection;
 
-import teetime.framework.core.IOutputPort;
-import teetime.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.IStage;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/framework/concurrent/SingleProducerSingleConsumerPipe.java b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/SingleProducerSingleConsumerPipe.java
similarity index 83%
rename from src/main/java/teetime/framework/concurrent/SingleProducerSingleConsumerPipe.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/concurrent/SingleProducerSingleConsumerPipe.java
index 40e065db..b3a43f38 100644
--- a/src/main/java/teetime/framework/concurrent/SingleProducerSingleConsumerPipe.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/SingleProducerSingleConsumerPipe.java
@@ -1,16 +1,16 @@
-package teetime.framework.concurrent;
+package teetime.variant.explicitScheduling.framework.concurrent;
 
 import java.util.List;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.Callable;
 import java.util.concurrent.LinkedBlockingDeque;
 
-import teetime.framework.core.AbstractPipe;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
-import teetime.framework.core.ISink;
-import teetime.framework.core.ISource;
 import teetime.util.concurrent.workstealing.CircularWorkStealingDeque;
+import teetime.variant.explicitScheduling.framework.core.AbstractPipe;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.ISink;
+import teetime.variant.explicitScheduling.framework.core.ISource;
 
 public class SingleProducerSingleConsumerPipe<T> extends AbstractPipe<T> {
 
diff --git a/src/main/java/teetime/framework/concurrent/StageTerminationPolicy.java b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/StageTerminationPolicy.java
similarity index 93%
rename from src/main/java/teetime/framework/concurrent/StageTerminationPolicy.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/concurrent/StageTerminationPolicy.java
index 8eaec85e..2a14fd8e 100644
--- a/src/main/java/teetime/framework/concurrent/StageTerminationPolicy.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/StageTerminationPolicy.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.framework.concurrent;
+package teetime.variant.explicitScheduling.framework.concurrent;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/framework/concurrent/StageWorkArrayList.java b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/StageWorkArrayList.java
similarity index 93%
rename from src/main/java/teetime/framework/concurrent/StageWorkArrayList.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/concurrent/StageWorkArrayList.java
index a9df41eb..a8b48e2a 100644
--- a/src/main/java/teetime/framework/concurrent/StageWorkArrayList.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/StageWorkArrayList.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.framework.concurrent;
+package teetime.variant.explicitScheduling.framework.concurrent;
 
 import java.util.Collection;
 
-import teetime.framework.core.IOutputPort;
-import teetime.framework.core.IPipeline;
-import teetime.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.IPipeline;
+import teetime.variant.explicitScheduling.framework.core.IStage;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/framework/concurrent/StageWorkList.java b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/StageWorkList.java
similarity index 91%
rename from src/main/java/teetime/framework/concurrent/StageWorkList.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/concurrent/StageWorkList.java
index 92f1c268..34d46197 100644
--- a/src/main/java/teetime/framework/concurrent/StageWorkList.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/StageWorkList.java
@@ -1,11 +1,11 @@
-package teetime.framework.concurrent;
+package teetime.variant.explicitScheduling.framework.concurrent;
 
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import teetime.framework.core.IOutputPort;
-import teetime.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.IStage;
 
 @Deprecated
 public class StageWorkList implements IStageWorkList {
diff --git a/src/main/java/teetime/framework/concurrent/TokenBundle.java b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/TokenBundle.java
similarity index 76%
rename from src/main/java/teetime/framework/concurrent/TokenBundle.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/concurrent/TokenBundle.java
index dd035cc0..16014598 100644
--- a/src/main/java/teetime/framework/concurrent/TokenBundle.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/TokenBundle.java
@@ -1,4 +1,4 @@
-package teetime.framework.concurrent;
+package teetime.variant.explicitScheduling.framework.concurrent;
 
 import java.util.List;
 
diff --git a/src/main/java/teetime/framework/concurrent/WorkerThread.java b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/WorkerThread.java
similarity index 92%
rename from src/main/java/teetime/framework/concurrent/WorkerThread.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/concurrent/WorkerThread.java
index e45b3ed8..56860132 100644
--- a/src/main/java/teetime/framework/concurrent/WorkerThread.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/WorkerThread.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.framework.concurrent;
+package teetime.variant.explicitScheduling.framework.concurrent;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -22,15 +22,15 @@ import java.util.Comparator;
 import java.util.LinkedList;
 import java.util.List;
 
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IInputPort.PortState;
-import teetime.framework.core.IPipe;
-import teetime.framework.core.IPipeCommand;
-import teetime.framework.core.IPipeline;
-import teetime.framework.core.IStage;
-import teetime.framework.scheduling.NextStageScheduler;
-import teetime.framework.scheduling.StageStateManager;
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IPipe;
+import teetime.variant.explicitScheduling.framework.core.IPipeCommand;
+import teetime.variant.explicitScheduling.framework.core.IPipeline;
+import teetime.variant.explicitScheduling.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.core.IInputPort.PortState;
+import teetime.variant.explicitScheduling.framework.scheduling.NextStageScheduler;
+import teetime.variant.explicitScheduling.framework.scheduling.StageStateManager;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/framework/concurrent/steal/IStealStrategy.java b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/steal/IStealStrategy.java
similarity index 77%
rename from src/main/java/teetime/framework/concurrent/steal/IStealStrategy.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/concurrent/steal/IStealStrategy.java
index cd38a195..378b693f 100644
--- a/src/main/java/teetime/framework/concurrent/steal/IStealStrategy.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/steal/IStealStrategy.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.framework.concurrent.steal;
+package teetime.variant.explicitScheduling.framework.concurrent.steal;
 
 import java.util.Collection;
 
-import teetime.framework.concurrent.ConcurrentWorkStealingPipe;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.concurrent.ConcurrentWorkStealingPipe;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IStage;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/framework/concurrent/steal/StealIfEmptyStrategy.java b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/steal/StealIfEmptyStrategy.java
similarity index 82%
rename from src/main/java/teetime/framework/concurrent/steal/StealIfEmptyStrategy.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/concurrent/steal/StealIfEmptyStrategy.java
index a042054e..adc15630 100644
--- a/src/main/java/teetime/framework/concurrent/steal/StealIfEmptyStrategy.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/concurrent/steal/StealIfEmptyStrategy.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.framework.concurrent.steal;
+package teetime.variant.explicitScheduling.framework.concurrent.steal;
 
 import java.util.Collection;
 
-import teetime.framework.concurrent.ConcurrentWorkStealingPipe;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.concurrent.ConcurrentWorkStealingPipe;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IStage;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/framework/core/AbstractFilter.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/AbstractFilter.java
similarity index 99%
rename from src/main/java/teetime/framework/core/AbstractFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/AbstractFilter.java
index 916a8985..27b78d51 100644
--- a/src/main/java/teetime/framework/core/AbstractFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/AbstractFilter.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 import java.util.ArrayList;
 import java.util.Collection;
diff --git a/src/main/java/teetime/framework/core/AbstractMultiPort.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/AbstractMultiPort.java
similarity index 96%
rename from src/main/java/teetime/framework/core/AbstractMultiPort.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/AbstractMultiPort.java
index b40b0910..06930008 100644
--- a/src/main/java/teetime/framework/core/AbstractMultiPort.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/AbstractMultiPort.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 import java.util.Collections;
 import java.util.HashSet;
diff --git a/src/main/java/teetime/framework/core/AbstractPipe.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/AbstractPipe.java
similarity index 98%
rename from src/main/java/teetime/framework/core/AbstractPipe.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/AbstractPipe.java
index 214e014a..262e23e6 100644
--- a/src/main/java/teetime/framework/core/AbstractPipe.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/AbstractPipe.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/framework/core/AbstractPort.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/AbstractPort.java
similarity index 92%
rename from src/main/java/teetime/framework/core/AbstractPort.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/AbstractPort.java
index 4bcf752e..834e3b20 100644
--- a/src/main/java/teetime/framework/core/AbstractPort.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/AbstractPort.java
@@ -1,4 +1,4 @@
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/framework/core/AbstractStage.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/AbstractStage.java
similarity index 97%
rename from src/main/java/teetime/framework/core/AbstractStage.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/AbstractStage.java
index 46f5e789..9fb4c027 100644
--- a/src/main/java/teetime/framework/core/AbstractStage.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/AbstractStage.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 import java.util.UUID;
 
diff --git a/src/main/java/teetime/framework/core/Analysis.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/Analysis.java
similarity index 94%
rename from src/main/java/teetime/framework/core/Analysis.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/Analysis.java
index da54823a..42719a29 100644
--- a/src/main/java/teetime/framework/core/Analysis.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/Analysis.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/framework/core/CompositeFilter.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/CompositeFilter.java
similarity index 96%
rename from src/main/java/teetime/framework/core/CompositeFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/CompositeFilter.java
index 113befe4..262d124a 100644
--- a/src/main/java/teetime/framework/core/CompositeFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/CompositeFilter.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 import java.util.ArrayList;
 import java.util.HashMap;
diff --git a/src/main/java/teetime/framework/core/Context.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/Context.java
similarity index 98%
rename from src/main/java/teetime/framework/core/Context.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/Context.java
index 5a6e40fa..3935b162 100644
--- a/src/main/java/teetime/framework/core/Context.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/Context.java
@@ -1,4 +1,4 @@
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/src/main/java/teetime/framework/core/Description.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/Description.java
similarity index 95%
rename from src/main/java/teetime/framework/core/Description.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/Description.java
index fda9e089..ade2e166 100644
--- a/src/main/java/teetime/framework/core/Description.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/Description.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
diff --git a/src/main/java/teetime/framework/core/IBaseStage.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/IBaseStage.java
similarity index 93%
rename from src/main/java/teetime/framework/core/IBaseStage.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/IBaseStage.java
index 99c03745..965793c4 100644
--- a/src/main/java/teetime/framework/core/IBaseStage.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/IBaseStage.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/framework/core/IInputPort.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/IInputPort.java
similarity index 91%
rename from src/main/java/teetime/framework/core/IInputPort.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/IInputPort.java
index d463e074..254d2628 100644
--- a/src/main/java/teetime/framework/core/IInputPort.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/IInputPort.java
@@ -1,4 +1,4 @@
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 /**
  *
diff --git a/src/main/java/teetime/framework/core/IOutputPort.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/IOutputPort.java
similarity index 80%
rename from src/main/java/teetime/framework/core/IOutputPort.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/IOutputPort.java
index 3d8b8c06..c0671827 100644
--- a/src/main/java/teetime/framework/core/IOutputPort.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/IOutputPort.java
@@ -1,4 +1,4 @@
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 /**
  * 
diff --git a/src/main/java/teetime/framework/core/IPipe.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/IPipe.java
similarity index 98%
rename from src/main/java/teetime/framework/core/IPipe.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/IPipe.java
index a4f95347..a14ba0c1 100644
--- a/src/main/java/teetime/framework/core/IPipe.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/IPipe.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 import java.util.List;
 
diff --git a/src/main/java/teetime/framework/core/IPipeCommand.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/IPipeCommand.java
similarity index 93%
rename from src/main/java/teetime/framework/core/IPipeCommand.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/IPipeCommand.java
index 6f06d7a2..e6eb0bc7 100644
--- a/src/main/java/teetime/framework/core/IPipeCommand.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/IPipeCommand.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/framework/core/IPipeline.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/IPipeline.java
similarity index 94%
rename from src/main/java/teetime/framework/core/IPipeline.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/IPipeline.java
index 21372d7e..0b0d86b6 100644
--- a/src/main/java/teetime/framework/core/IPipeline.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/IPipeline.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 import java.util.List;
 
diff --git a/src/main/java/teetime/framework/core/IPort.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/IPort.java
similarity index 84%
rename from src/main/java/teetime/framework/core/IPort.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/IPort.java
index 3f9d501f..0e6432ed 100644
--- a/src/main/java/teetime/framework/core/IPort.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/IPort.java
@@ -1,4 +1,4 @@
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 /**
  * 
diff --git a/src/main/java/teetime/framework/core/IPortListener.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/IPortListener.java
similarity index 93%
rename from src/main/java/teetime/framework/core/IPortListener.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/IPortListener.java
index b7783c32..23e66be6 100644
--- a/src/main/java/teetime/framework/core/IPortListener.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/IPortListener.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/framework/core/IReservablePipe.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/IReservablePipe.java
similarity index 67%
rename from src/main/java/teetime/framework/core/IReservablePipe.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/IReservablePipe.java
index 27c22ebd..3c1ef86e 100644
--- a/src/main/java/teetime/framework/core/IReservablePipe.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/IReservablePipe.java
@@ -1,4 +1,4 @@
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 public interface IReservablePipe<T> extends IPipe<T> {
 
diff --git a/src/main/java/teetime/framework/core/ISink.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/ISink.java
similarity index 94%
rename from src/main/java/teetime/framework/core/ISink.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/ISink.java
index 4eaab240..9e33b6bc 100644
--- a/src/main/java/teetime/framework/core/ISink.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/ISink.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 /**
  * 
diff --git a/src/main/java/teetime/framework/core/ISource.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/ISource.java
similarity index 93%
rename from src/main/java/teetime/framework/core/ISource.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/ISource.java
index 77985e87..75e3ca48 100644
--- a/src/main/java/teetime/framework/core/ISource.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/ISource.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/framework/core/IStage.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/IStage.java
similarity index 98%
rename from src/main/java/teetime/framework/core/IStage.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/IStage.java
index 5d7aba44..bcadf66d 100644
--- a/src/main/java/teetime/framework/core/IStage.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/IStage.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 import java.util.Collection;
 import java.util.List;
diff --git a/src/main/java/teetime/framework/core/InputPortImpl.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/InputPortImpl.java
similarity index 96%
rename from src/main/java/teetime/framework/core/InputPortImpl.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/InputPortImpl.java
index 021ab567..2a61afff 100644
--- a/src/main/java/teetime/framework/core/InputPortImpl.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/InputPortImpl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 class InputPortImpl<S extends IStage, T> extends AbstractPort<S, T> implements IInputPort<S, T> {
 
diff --git a/src/main/java/teetime/framework/core/OutputPortImpl.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/OutputPortImpl.java
similarity index 77%
rename from src/main/java/teetime/framework/core/OutputPortImpl.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/OutputPortImpl.java
index e3c0e42d..946b2ec3 100644
--- a/src/main/java/teetime/framework/core/OutputPortImpl.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/OutputPortImpl.java
@@ -1,4 +1,4 @@
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 
 public class OutputPortImpl<S extends IStage, T> extends AbstractPort<S, T> implements IOutputPort<S, T> {
diff --git a/src/main/java/teetime/framework/core/Pipeline.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/Pipeline.java
similarity index 96%
rename from src/main/java/teetime/framework/core/Pipeline.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/core/Pipeline.java
index 7848fa0c..5526b9b9 100644
--- a/src/main/java/teetime/framework/core/Pipeline.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/Pipeline.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.framework.core;
+package teetime.variant.explicitScheduling.framework.core;
 
 import java.util.List;
 
diff --git a/src/main/java/teetime/variant/explicitScheduling/framework/core/ReservableContext.java b/src/main/java/teetime/variant/explicitScheduling/framework/core/ReservableContext.java
new file mode 100644
index 00000000..37b8f527
--- /dev/null
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/core/ReservableContext.java
@@ -0,0 +1,5 @@
+package teetime.variant.explicitScheduling.framework.core;
+
+public class ReservableContext {
+
+}
diff --git a/src/main/java/teetime/framework/scheduling/NextStageScheduler.java b/src/main/java/teetime/variant/explicitScheduling/framework/scheduling/NextStageScheduler.java
similarity index 86%
rename from src/main/java/teetime/framework/scheduling/NextStageScheduler.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/scheduling/NextStageScheduler.java
index db71c1a5..becf8180 100644
--- a/src/main/java/teetime/framework/scheduling/NextStageScheduler.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/scheduling/NextStageScheduler.java
@@ -14,17 +14,17 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.framework.scheduling;
+package teetime.variant.explicitScheduling.framework.scheduling;
 
 import java.util.LinkedHashSet;
 import java.util.Set;
 
-import teetime.framework.concurrent.IStageScheduler;
-import teetime.framework.concurrent.IStageWorkList;
-import teetime.framework.concurrent.StageWorkArrayList;
-import teetime.framework.core.IOutputPort;
-import teetime.framework.core.IPipeline;
-import teetime.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.concurrent.IStageScheduler;
+import teetime.variant.explicitScheduling.framework.concurrent.IStageWorkList;
+import teetime.variant.explicitScheduling.framework.concurrent.StageWorkArrayList;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.IPipeline;
+import teetime.variant.explicitScheduling.framework.core.IStage;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/framework/scheduling/StageStateContainer.java b/src/main/java/teetime/variant/explicitScheduling/framework/scheduling/StageStateContainer.java
similarity index 80%
rename from src/main/java/teetime/framework/scheduling/StageStateContainer.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/scheduling/StageStateContainer.java
index 667d639d..fdc8241c 100644
--- a/src/main/java/teetime/framework/scheduling/StageStateContainer.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/scheduling/StageStateContainer.java
@@ -1,6 +1,6 @@
-package teetime.framework.scheduling;
+package teetime.variant.explicitScheduling.framework.scheduling;
 
-import teetime.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.core.IStage;
 
 public abstract class StageStateContainer {
 
diff --git a/src/main/java/teetime/framework/scheduling/StageStateManager.java b/src/main/java/teetime/variant/explicitScheduling/framework/scheduling/StageStateManager.java
similarity index 87%
rename from src/main/java/teetime/framework/scheduling/StageStateManager.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/scheduling/StageStateManager.java
index 6412ae9b..04b0d51a 100644
--- a/src/main/java/teetime/framework/scheduling/StageStateManager.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/scheduling/StageStateManager.java
@@ -1,12 +1,12 @@
-package teetime.framework.scheduling;
+package teetime.variant.explicitScheduling.framework.scheduling;
 
 import java.util.Arrays;
 
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IPipeline;
-import teetime.framework.core.IPortListener;
-import teetime.framework.core.IStage;
-import teetime.framework.scheduling.StageStateContainer.StageState;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IPipeline;
+import teetime.variant.explicitScheduling.framework.core.IPortListener;
+import teetime.variant.explicitScheduling.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.scheduling.StageStateContainer.StageState;
 
 public final class StageStateManager implements IPortListener {
 
diff --git a/src/main/java/teetime/framework/scheduling/SynchronizedStageStateContainer.java b/src/main/java/teetime/variant/explicitScheduling/framework/scheduling/SynchronizedStageStateContainer.java
similarity index 77%
rename from src/main/java/teetime/framework/scheduling/SynchronizedStageStateContainer.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/scheduling/SynchronizedStageStateContainer.java
index 9b70846a..9dd69e3a 100644
--- a/src/main/java/teetime/framework/scheduling/SynchronizedStageStateContainer.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/scheduling/SynchronizedStageStateContainer.java
@@ -1,8 +1,8 @@
-package teetime.framework.scheduling;
+package teetime.variant.explicitScheduling.framework.scheduling;
 
 import java.util.concurrent.atomic.AtomicInteger;
 
-import teetime.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.core.IStage;
 
 public final class SynchronizedStageStateContainer extends StageStateContainer {
 
diff --git a/src/main/java/teetime/framework/scheduling/UnsynchronizedStageStateContainer.java b/src/main/java/teetime/variant/explicitScheduling/framework/scheduling/UnsynchronizedStageStateContainer.java
similarity index 73%
rename from src/main/java/teetime/framework/scheduling/UnsynchronizedStageStateContainer.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/scheduling/UnsynchronizedStageStateContainer.java
index 46556e99..f425d2ba 100644
--- a/src/main/java/teetime/framework/scheduling/UnsynchronizedStageStateContainer.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/scheduling/UnsynchronizedStageStateContainer.java
@@ -1,6 +1,6 @@
-package teetime.framework.scheduling;
+package teetime.variant.explicitScheduling.framework.scheduling;
 
-import teetime.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.core.IStage;
 
 public final class UnsynchronizedStageStateContainer extends StageStateContainer {
 
diff --git a/src/main/java/teetime/framework/sequential/MethodCallPipe.java b/src/main/java/teetime/variant/explicitScheduling/framework/sequential/MethodCallPipe.java
similarity index 84%
rename from src/main/java/teetime/framework/sequential/MethodCallPipe.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/sequential/MethodCallPipe.java
index 2a18cc0d..820fb6dc 100644
--- a/src/main/java/teetime/framework/sequential/MethodCallPipe.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/sequential/MethodCallPipe.java
@@ -14,16 +14,16 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.framework.sequential;
+package teetime.variant.explicitScheduling.framework.sequential;
 
 import java.util.List;
 
-import teetime.framework.core.AbstractPipe;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
-import teetime.framework.core.IReservablePipe;
-import teetime.framework.core.ISink;
-import teetime.framework.core.ISource;
+import teetime.variant.explicitScheduling.framework.core.AbstractPipe;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.IReservablePipe;
+import teetime.variant.explicitScheduling.framework.core.ISink;
+import teetime.variant.explicitScheduling.framework.core.ISource;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/framework/sequential/Pipeline.java.todo b/src/main/java/teetime/variant/explicitScheduling/framework/sequential/Pipeline.java.todo
similarity index 100%
rename from src/main/java/teetime/framework/sequential/Pipeline.java.todo
rename to src/main/java/teetime/variant/explicitScheduling/framework/sequential/Pipeline.java.todo
diff --git a/src/main/java/teetime/framework/sequential/QueuePipe.java b/src/main/java/teetime/variant/explicitScheduling/framework/sequential/QueuePipe.java
similarity index 85%
rename from src/main/java/teetime/framework/sequential/QueuePipe.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/sequential/QueuePipe.java
index b7828466..1a517847 100644
--- a/src/main/java/teetime/framework/sequential/QueuePipe.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/sequential/QueuePipe.java
@@ -13,19 +13,19 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.framework.sequential;
+package teetime.variant.explicitScheduling.framework.sequential;
 
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Queue;
 
-import teetime.framework.core.AbstractPipe;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
-import teetime.framework.core.IReservablePipe;
-import teetime.framework.core.ISink;
-import teetime.framework.core.ISource;
 import teetime.util.concurrent.workstealing.CircularWorkStealingDeque;
+import teetime.variant.explicitScheduling.framework.core.AbstractPipe;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.IReservablePipe;
+import teetime.variant.explicitScheduling.framework.core.ISink;
+import teetime.variant.explicitScheduling.framework.core.ISource;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/framework/sequential/ReservableQueuePipe.java b/src/main/java/teetime/variant/explicitScheduling/framework/sequential/ReservableQueuePipe.java
similarity index 76%
rename from src/main/java/teetime/framework/sequential/ReservableQueuePipe.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/sequential/ReservableQueuePipe.java
index 9cce059c..3ed9a10d 100644
--- a/src/main/java/teetime/framework/sequential/ReservableQueuePipe.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/sequential/ReservableQueuePipe.java
@@ -1,14 +1,14 @@
-package teetime.framework.sequential;
+package teetime.variant.explicitScheduling.framework.sequential;
 
 import java.util.List;
 
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
-import teetime.framework.core.IReservablePipe;
-import teetime.framework.core.ISink;
-import teetime.framework.core.ISource;
 import teetime.util.list.CommittableQueue;
 import teetime.util.list.CommittableResizableArrayQueue;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.IReservablePipe;
+import teetime.variant.explicitScheduling.framework.core.ISink;
+import teetime.variant.explicitScheduling.framework.core.ISource;
 
 public class ReservableQueuePipe<T> extends QueuePipe<T> implements IReservablePipe<T> {
 
diff --git a/src/main/java/teetime/framework/util/BaseStage2StageExtractor.java b/src/main/java/teetime/variant/explicitScheduling/framework/util/BaseStage2StageExtractor.java
similarity index 85%
rename from src/main/java/teetime/framework/util/BaseStage2StageExtractor.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/util/BaseStage2StageExtractor.java
index 819de274..5db91639 100644
--- a/src/main/java/teetime/framework/util/BaseStage2StageExtractor.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/util/BaseStage2StageExtractor.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.framework.util;
+package teetime.variant.explicitScheduling.framework.util;
 
 import java.util.LinkedList;
 import java.util.List;
 
-import teetime.framework.core.CompositeFilter;
-import teetime.framework.core.IBaseStage;
-import teetime.framework.core.IStage;
+import teetime.variant.explicitScheduling.framework.core.CompositeFilter;
+import teetime.variant.explicitScheduling.framework.core.IBaseStage;
+import teetime.variant.explicitScheduling.framework.core.IStage;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/framework/util/Cloner.java b/src/main/java/teetime/variant/explicitScheduling/framework/util/Cloner.java
similarity index 98%
rename from src/main/java/teetime/framework/util/Cloner.java
rename to src/main/java/teetime/variant/explicitScheduling/framework/util/Cloner.java
index d8463dbe..2fb8acdd 100644
--- a/src/main/java/teetime/framework/util/Cloner.java
+++ b/src/main/java/teetime/variant/explicitScheduling/framework/util/Cloner.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.framework.util;
+package teetime.variant.explicitScheduling.framework.util;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
diff --git a/src/main/java/teetime/stage/Cache.java b/src/main/java/teetime/variant/explicitScheduling/stage/Cache.java
similarity index 87%
rename from src/main/java/teetime/stage/Cache.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/Cache.java
index 723f8cd9..3b5e9d75 100644
--- a/src/main/java/teetime/stage/Cache.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/Cache.java
@@ -13,15 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage;
+package teetime.variant.explicitScheduling.stage;
 
 import java.util.LinkedList;
 import java.util.List;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/CollectorSink.java b/src/main/java/teetime/variant/explicitScheduling/stage/CollectorSink.java
similarity index 86%
rename from src/main/java/teetime/stage/CollectorSink.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/CollectorSink.java
index b2a135c4..2ab57eb3 100644
--- a/src/main/java/teetime/stage/CollectorSink.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/CollectorSink.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage;
+package teetime.variant.explicitScheduling.stage;
 
 import java.util.Collection;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/CountingFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/CountingFilter.java
similarity index 85%
rename from src/main/java/teetime/stage/CountingFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/CountingFilter.java
index 018227ac..4cd0b278 100644
--- a/src/main/java/teetime/stage/CountingFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/CountingFilter.java
@@ -14,12 +14,12 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.stage;
+package teetime.variant.explicitScheduling.stage;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/FileExtensionFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/FileExtensionFilter.java
similarity index 88%
rename from src/main/java/teetime/stage/FileExtensionFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/FileExtensionFilter.java
index 329c3e72..6e058aa4 100644
--- a/src/main/java/teetime/stage/FileExtensionFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/FileExtensionFilter.java
@@ -13,16 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage;
+package teetime.variant.explicitScheduling.stage;
 
 import java.io.File;
 import java.util.HashMap;
 import java.util.regex.Pattern;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/InstanceOfFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/InstanceOfFilter.java
similarity index 77%
rename from src/main/java/teetime/stage/InstanceOfFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/InstanceOfFilter.java
index 1fdb4f13..aca2e55e 100644
--- a/src/main/java/teetime/stage/InstanceOfFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/InstanceOfFilter.java
@@ -1,9 +1,9 @@
-package teetime.stage;
+package teetime.variant.explicitScheduling.stage;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * @author Jan Waller, Nils Christian Ehmke, Christian Wulf
diff --git a/src/main/java/teetime/stage/MappingException.java b/src/main/java/teetime/variant/explicitScheduling/stage/MappingException.java
similarity index 95%
rename from src/main/java/teetime/stage/MappingException.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/MappingException.java
index 49fd0fc3..a718972a 100644
--- a/src/main/java/teetime/stage/MappingException.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/MappingException.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.stage;
+package teetime.variant.explicitScheduling.stage;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/NoopFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/NoopFilter.java
similarity index 80%
rename from src/main/java/teetime/stage/NoopFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/NoopFilter.java
index de1b31b4..5aebff55 100644
--- a/src/main/java/teetime/stage/NoopFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/NoopFilter.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage;
+package teetime.variant.explicitScheduling.stage;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/StartTimestampFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/StartTimestampFilter.java
similarity index 78%
rename from src/main/java/teetime/stage/StartTimestampFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/StartTimestampFilter.java
index 327e5e19..447ca374 100644
--- a/src/main/java/teetime/stage/StartTimestampFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/StartTimestampFilter.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage;
+package teetime.variant.explicitScheduling.stage;
 
-import teetime.examples.throughput.TimestampObject;
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/StopTimestampFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/StopTimestampFilter.java
similarity index 77%
rename from src/main/java/teetime/stage/StopTimestampFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/StopTimestampFilter.java
index fc65ca63..de80acde 100644
--- a/src/main/java/teetime/stage/StopTimestampFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/StopTimestampFilter.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage;
+package teetime.variant.explicitScheduling.stage;
 
-import teetime.examples.throughput.TimestampObject;
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/SuperTypeFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/SuperTypeFilter.java
similarity index 61%
rename from src/main/java/teetime/stage/SuperTypeFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/SuperTypeFilter.java
index 8482233c..6b3b109a 100644
--- a/src/main/java/teetime/stage/SuperTypeFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/SuperTypeFilter.java
@@ -1,9 +1,9 @@
-package teetime.stage;
+package teetime.variant.explicitScheduling.stage;
 
 import java.util.Collection;
 
-import teetime.stage.predicate.IsSuperTypePredicate;
-import teetime.stage.predicate.PredicateFilter;
+import teetime.variant.explicitScheduling.stage.predicate.IsSuperTypePredicate;
+import teetime.variant.explicitScheduling.stage.predicate.PredicateFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/TypeLoggerFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/TypeLoggerFilter.java
similarity index 85%
rename from src/main/java/teetime/stage/TypeLoggerFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/TypeLoggerFilter.java
index 304579a5..2624e5a6 100644
--- a/src/main/java/teetime/stage/TypeLoggerFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/TypeLoggerFilter.java
@@ -14,14 +14,14 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.stage;
+package teetime.variant.explicitScheduling.stage;
 
 import java.io.PrintStream;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * @author Matthias Rohr, Jan Waller, Nils Christian Ehmke, Christian Wulf
diff --git a/src/main/java/teetime/stage/basic/Clock.java b/src/main/java/teetime/variant/explicitScheduling/stage/basic/Clock.java
similarity index 86%
rename from src/main/java/teetime/stage/basic/Clock.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/basic/Clock.java
index 014de3ec..d6f7910a 100644
--- a/src/main/java/teetime/stage/basic/Clock.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/basic/Clock.java
@@ -1,8 +1,8 @@
-package teetime.stage.basic;
+package teetime.variant.explicitScheduling.stage.basic;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  *
diff --git a/src/main/java/teetime/stage/basic/Delay.java b/src/main/java/teetime/variant/explicitScheduling/stage/basic/Delay.java
similarity index 65%
rename from src/main/java/teetime/stage/basic/Delay.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/basic/Delay.java
index ab58b22e..22fd17c2 100644
--- a/src/main/java/teetime/stage/basic/Delay.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/basic/Delay.java
@@ -1,9 +1,9 @@
-package teetime.stage.basic;
+package teetime.variant.explicitScheduling.stage.basic;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 public class Delay<T> extends AbstractFilter<Delay<T>> {
 
diff --git a/src/main/java/teetime/stage/basic/ObjectProducer.java b/src/main/java/teetime/variant/explicitScheduling/stage/basic/ObjectProducer.java
similarity index 88%
rename from src/main/java/teetime/stage/basic/ObjectProducer.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/basic/ObjectProducer.java
index 0c39313d..710ee671 100644
--- a/src/main/java/teetime/stage/basic/ObjectProducer.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/basic/ObjectProducer.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.basic;
+package teetime.variant.explicitScheduling.stage.basic;
 
 import java.util.concurrent.Callable;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/basic/RepeaterSource.java b/src/main/java/teetime/variant/explicitScheduling/stage/basic/RepeaterSource.java
similarity index 85%
rename from src/main/java/teetime/stage/basic/RepeaterSource.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/basic/RepeaterSource.java
index 495befe8..28e6783d 100644
--- a/src/main/java/teetime/stage/basic/RepeaterSource.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/basic/RepeaterSource.java
@@ -14,12 +14,12 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.stage.basic;
+package teetime.variant.explicitScheduling.stage.basic;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/basic/distributor/CloneStrategy.java b/src/main/java/teetime/variant/explicitScheduling/stage/basic/distributor/CloneStrategy.java
similarity index 84%
rename from src/main/java/teetime/stage/basic/distributor/CloneStrategy.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/basic/distributor/CloneStrategy.java
index e1687a07..92b3228b 100644
--- a/src/main/java/teetime/stage/basic/distributor/CloneStrategy.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/basic/distributor/CloneStrategy.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.basic.distributor;
+package teetime.variant.explicitScheduling.stage.basic.distributor;
 
 import java.util.List;
 
-import teetime.framework.core.Context;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * @author Nils Christian Ehmke
diff --git a/src/main/java/teetime/stage/basic/distributor/CopyByReferenceStrategy.java b/src/main/java/teetime/variant/explicitScheduling/stage/basic/distributor/CopyByReferenceStrategy.java
similarity index 85%
rename from src/main/java/teetime/stage/basic/distributor/CopyByReferenceStrategy.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/basic/distributor/CopyByReferenceStrategy.java
index 928f99f7..c6e0b8e2 100644
--- a/src/main/java/teetime/stage/basic/distributor/CopyByReferenceStrategy.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/basic/distributor/CopyByReferenceStrategy.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.basic.distributor;
+package teetime.variant.explicitScheduling.stage.basic.distributor;
 
 import java.util.List;
 
-import teetime.framework.core.Context;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * @author Nils Christian Ehmke
diff --git a/src/main/java/teetime/stage/basic/distributor/Distributor.java b/src/main/java/teetime/variant/explicitScheduling/stage/basic/distributor/Distributor.java
similarity index 83%
rename from src/main/java/teetime/stage/basic/distributor/Distributor.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/basic/distributor/Distributor.java
index 5b0a8ea7..2fceaae6 100644
--- a/src/main/java/teetime/stage/basic/distributor/Distributor.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/basic/distributor/Distributor.java
@@ -14,12 +14,12 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.stage.basic.distributor;
+package teetime.variant.explicitScheduling.stage.basic.distributor;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/basic/distributor/IDistributorStrategy.java b/src/main/java/teetime/variant/explicitScheduling/stage/basic/distributor/IDistributorStrategy.java
similarity index 83%
rename from src/main/java/teetime/stage/basic/distributor/IDistributorStrategy.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/basic/distributor/IDistributorStrategy.java
index cb359235..fcf4fced 100644
--- a/src/main/java/teetime/stage/basic/distributor/IDistributorStrategy.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/basic/distributor/IDistributorStrategy.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.basic.distributor;
+package teetime.variant.explicitScheduling.stage.basic.distributor;
 
 import java.util.List;
 
-import teetime.framework.core.Context;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * @author Nils Christian Ehmke
diff --git a/src/main/java/teetime/stage/basic/distributor/RoundRobinStrategy.java b/src/main/java/teetime/variant/explicitScheduling/stage/basic/distributor/RoundRobinStrategy.java
similarity index 88%
rename from src/main/java/teetime/stage/basic/distributor/RoundRobinStrategy.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/basic/distributor/RoundRobinStrategy.java
index 028e4f82..75ad77af 100644
--- a/src/main/java/teetime/stage/basic/distributor/RoundRobinStrategy.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/basic/distributor/RoundRobinStrategy.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.basic.distributor;
+package teetime.variant.explicitScheduling.stage.basic.distributor;
 
 import java.util.List;
 
-import teetime.framework.core.Context;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * @author Nils Christian Ehmke
diff --git a/src/main/java/teetime/stage/basic/merger/IMergerStrategy.java b/src/main/java/teetime/variant/explicitScheduling/stage/basic/merger/IMergerStrategy.java
similarity index 83%
rename from src/main/java/teetime/stage/basic/merger/IMergerStrategy.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/basic/merger/IMergerStrategy.java
index 390679b6..000afaba 100644
--- a/src/main/java/teetime/stage/basic/merger/IMergerStrategy.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/basic/merger/IMergerStrategy.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.basic.merger;
+package teetime.variant.explicitScheduling.stage.basic.merger;
 
 import java.util.List;
 
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
 
 /**
  * @author Nils Christian Ehmke
diff --git a/src/main/java/teetime/stage/basic/merger/Merger.java b/src/main/java/teetime/variant/explicitScheduling/stage/basic/merger/Merger.java
similarity index 81%
rename from src/main/java/teetime/stage/basic/merger/Merger.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/basic/merger/Merger.java
index 0a26fecb..de1effc9 100644
--- a/src/main/java/teetime/stage/basic/merger/Merger.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/basic/merger/Merger.java
@@ -14,13 +14,13 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.stage.basic.merger;
+package teetime.variant.explicitScheduling.stage.basic.merger;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.Description;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.Description;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * 
diff --git a/src/main/java/teetime/stage/basic/merger/RoundRobinStrategy.java b/src/main/java/teetime/variant/explicitScheduling/stage/basic/merger/RoundRobinStrategy.java
similarity index 89%
rename from src/main/java/teetime/stage/basic/merger/RoundRobinStrategy.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/basic/merger/RoundRobinStrategy.java
index db8c674f..bf61492d 100644
--- a/src/main/java/teetime/stage/basic/merger/RoundRobinStrategy.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/basic/merger/RoundRobinStrategy.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.basic.merger;
+package teetime.variant.explicitScheduling.stage.basic.merger;
 
 import java.util.List;
 
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
 
 /**
  * @author Nils Christian Ehmke
diff --git a/src/main/java/teetime/stage/composite/CycledCountingFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/composite/CycledCountingFilter.java
similarity index 90%
rename from src/main/java/teetime/stage/composite/CycledCountingFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/composite/CycledCountingFilter.java
index ab715eef..a3cea023 100644
--- a/src/main/java/teetime/stage/composite/CycledCountingFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/composite/CycledCountingFilter.java
@@ -14,10 +14,10 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.stage.composite;
+package teetime.variant.explicitScheduling.stage.composite;
 
-import teetime.framework.core.IPipe;
-import teetime.stage.CountingFilter;
+import teetime.variant.explicitScheduling.framework.core.IPipe;
+import teetime.variant.explicitScheduling.stage.CountingFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/composite/ReadRecordFromCsvFileFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/composite/ReadRecordFromCsvFileFilter.java
similarity index 76%
rename from src/main/java/teetime/stage/composite/ReadRecordFromCsvFileFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/composite/ReadRecordFromCsvFileFilter.java
index dc9e397a..5f8ebdfb 100644
--- a/src/main/java/teetime/stage/composite/ReadRecordFromCsvFileFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/composite/ReadRecordFromCsvFileFilter.java
@@ -14,15 +14,15 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.stage.composite;
+package teetime.variant.explicitScheduling.stage.composite;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IPipe;
-import teetime.stage.io.File2TextLinesFilter;
-import teetime.stage.kieker.className.ClassNameRegistryRepository;
-import teetime.stage.kieker.fileToRecord.textLine.TextLine2RecordFilter;
-import teetime.stage.util.TextLine;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IPipe;
+import teetime.variant.explicitScheduling.stage.io.File2TextLinesFilter;
+import teetime.variant.explicitScheduling.stage.kieker.className.ClassNameRegistryRepository;
+import teetime.variant.explicitScheduling.stage.kieker.fileToRecord.textLine.TextLine2RecordFilter;
+import teetime.variant.explicitScheduling.stage.util.TextLine;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/composite/TeeFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/composite/TeeFilter.java
similarity index 73%
rename from src/main/java/teetime/stage/composite/TeeFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/composite/TeeFilter.java
index a249edec..6daf7038 100644
--- a/src/main/java/teetime/stage/composite/TeeFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/composite/TeeFilter.java
@@ -14,15 +14,15 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.stage.composite;
-
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IOutputPort;
-import teetime.framework.core.IPipe;
-import teetime.framework.sequential.MethodCallPipe;
-import teetime.stage.basic.distributor.Distributor;
-import teetime.stage.io.Printer;
+package teetime.variant.explicitScheduling.stage.composite;
+
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.IPipe;
+import teetime.variant.explicitScheduling.framework.sequential.MethodCallPipe;
+import teetime.variant.explicitScheduling.stage.basic.distributor.Distributor;
+import teetime.variant.explicitScheduling.stage.io.Printer;
 
 /**
  * @author Nils Christian Ehmke
diff --git a/src/main/java/teetime/stage/io/DbReader.java b/src/main/java/teetime/variant/explicitScheduling/stage/io/DbReader.java
similarity index 94%
rename from src/main/java/teetime/stage/io/DbReader.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/io/DbReader.java
index 14847fa5..60809bdb 100644
--- a/src/main/java/teetime/stage/io/DbReader.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/io/DbReader.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.stage.io;
+package teetime.variant.explicitScheduling.stage.io;
 
 import java.sql.Connection;
 import java.sql.DriverManager;
@@ -25,10 +25,11 @@ import java.sql.Statement;
 import kieker.common.exception.MonitoringRecordException;
 import kieker.common.record.AbstractMonitoringRecord;
 import kieker.common.record.IMonitoringRecord;
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.Description;
-import teetime.framework.core.IOutputPort;
+
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.Description;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * A very simple database reader that probably only works for small data sets.
diff --git a/src/main/java/teetime/stage/io/Directory2FilesFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/io/Directory2FilesFilter.java
similarity index 89%
rename from src/main/java/teetime/stage/io/Directory2FilesFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/io/Directory2FilesFilter.java
index d74fa6e1..7e781980 100644
--- a/src/main/java/teetime/stage/io/Directory2FilesFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/io/Directory2FilesFilter.java
@@ -14,17 +14,17 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.stage.io;
+package teetime.variant.explicitScheduling.stage.io;
 
 import java.io.File;
 import java.io.FileFilter;
 import java.util.Arrays;
 import java.util.Comparator;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/io/File2TextLinesFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/io/File2TextLinesFilter.java
similarity index 85%
rename from src/main/java/teetime/stage/io/File2TextLinesFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/io/File2TextLinesFilter.java
index 114a6dcf..08d479ca 100644
--- a/src/main/java/teetime/stage/io/File2TextLinesFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/io/File2TextLinesFilter.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.stage.io;
+package teetime.variant.explicitScheduling.stage.io;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -23,11 +23,11 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStreamReader;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
-import teetime.stage.util.TextLine;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.stage.util.TextLine;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/io/Printer.java b/src/main/java/teetime/variant/explicitScheduling/stage/io/Printer.java
similarity index 92%
rename from src/main/java/teetime/stage/io/Printer.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/io/Printer.java
index 538ad01c..a47068af 100644
--- a/src/main/java/teetime/stage/io/Printer.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/io/Printer.java
@@ -13,17 +13,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.io;
+package teetime.variant.explicitScheduling.stage.io;
 
 import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.PrintStream;
 import java.io.UnsupportedEncodingException;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.Description;
-import teetime.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.Description;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
 
 /**
  * @author Matthias Rohr, Jan Waller, Nils Christian Ehmke
diff --git a/src/main/java/teetime/stage/io/TCPReader.java b/src/main/java/teetime/variant/explicitScheduling/stage/io/TCPReader.java
similarity index 95%
rename from src/main/java/teetime/stage/io/TCPReader.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/io/TCPReader.java
index ad773d9f..60dc9bcb 100644
--- a/src/main/java/teetime/stage/io/TCPReader.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/io/TCPReader.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.io;
+package teetime.variant.explicitScheduling.stage.io;
 
 import java.io.IOException;
 import java.net.InetSocketAddress;
@@ -30,9 +30,10 @@ import kieker.common.record.IMonitoringRecord;
 import kieker.common.record.misc.RegistryRecord;
 import kieker.common.util.registry.ILookup;
 import kieker.common.util.registry.Lookup;
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IOutputPort;
+
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * This is a reader which reads the records from a TCP port.
diff --git a/src/main/java/teetime/stage/kieker/File2RecordFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/File2RecordFilter.java
similarity index 85%
rename from src/main/java/teetime/stage/kieker/File2RecordFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/kieker/File2RecordFilter.java
index 09e9a733..d2a2193d 100644
--- a/src/main/java/teetime/stage/kieker/File2RecordFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/File2RecordFilter.java
@@ -13,24 +13,24 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.kieker;
+package teetime.variant.explicitScheduling.stage.kieker;
 
 import java.io.File;
 
-import teetime.framework.concurrent.ConcurrentWorkStealingPipe;
-import teetime.framework.concurrent.ConcurrentWorkStealingPipeFactory;
-import teetime.framework.core.CompositeFilter;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
-import teetime.stage.FileExtensionFilter;
-import teetime.stage.basic.merger.Merger;
-import teetime.stage.kieker.className.ClassNameRegistryCreationFilter;
-import teetime.stage.kieker.className.ClassNameRegistryRepository;
-import teetime.stage.kieker.fileToRecord.BinaryFile2RecordFilter;
-import teetime.stage.kieker.fileToRecord.DatFile2RecordFilter;
-import teetime.stage.kieker.fileToRecord.ZipFile2RecordFilter;
-import teetime.stage.predicate.IsDirectoryPredicate;
-import teetime.stage.predicate.PredicateFilter;
+import teetime.variant.explicitScheduling.framework.concurrent.ConcurrentWorkStealingPipe;
+import teetime.variant.explicitScheduling.framework.concurrent.ConcurrentWorkStealingPipeFactory;
+import teetime.variant.explicitScheduling.framework.core.CompositeFilter;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.stage.FileExtensionFilter;
+import teetime.variant.explicitScheduling.stage.basic.merger.Merger;
+import teetime.variant.explicitScheduling.stage.kieker.className.ClassNameRegistryCreationFilter;
+import teetime.variant.explicitScheduling.stage.kieker.className.ClassNameRegistryRepository;
+import teetime.variant.explicitScheduling.stage.kieker.fileToRecord.BinaryFile2RecordFilter;
+import teetime.variant.explicitScheduling.stage.kieker.fileToRecord.DatFile2RecordFilter;
+import teetime.variant.explicitScheduling.stage.kieker.fileToRecord.ZipFile2RecordFilter;
+import teetime.variant.explicitScheduling.stage.predicate.IsDirectoryPredicate;
+import teetime.variant.explicitScheduling.stage.predicate.PredicateFilter;
 
 import kieker.common.record.IMonitoringRecord;
 import kieker.common.util.filesystem.BinaryCompressionMethod;
diff --git a/src/main/java/teetime/stage/kieker/MonitoringLogDirectory2Files.java b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/MonitoringLogDirectory2Files.java
similarity index 90%
rename from src/main/java/teetime/stage/kieker/MonitoringLogDirectory2Files.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/kieker/MonitoringLogDirectory2Files.java
index e65c2588..142be117 100644
--- a/src/main/java/teetime/stage/kieker/MonitoringLogDirectory2Files.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/MonitoringLogDirectory2Files.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.kieker;
+package teetime.variant.explicitScheduling.stage.kieker;
 
 import java.io.File;
 import java.io.FileFilter;
@@ -21,9 +21,10 @@ import java.util.Comparator;
 
 import kieker.common.util.filesystem.BinaryCompressionMethod;
 import kieker.common.util.filesystem.FSUtil;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.stage.io.Directory2FilesFilter;
+
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.stage.io.Directory2FilesFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/kieker/className/ClassNameRegistry.java b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/className/ClassNameRegistry.java
similarity index 93%
rename from src/main/java/teetime/stage/kieker/className/ClassNameRegistry.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/kieker/className/ClassNameRegistry.java
index 15e300ed..9a8f1656 100644
--- a/src/main/java/teetime/stage/kieker/className/ClassNameRegistry.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/className/ClassNameRegistry.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.kieker.className;
+package teetime.variant.explicitScheduling.stage.kieker.className;
 
 import java.util.HashMap;
 
diff --git a/src/main/java/teetime/stage/kieker/className/ClassNameRegistryCreationFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/className/ClassNameRegistryCreationFilter.java
similarity index 89%
rename from src/main/java/teetime/stage/kieker/className/ClassNameRegistryCreationFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/kieker/className/ClassNameRegistryCreationFilter.java
index 85c350f0..e789679f 100644
--- a/src/main/java/teetime/stage/kieker/className/ClassNameRegistryCreationFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/className/ClassNameRegistryCreationFilter.java
@@ -13,17 +13,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.kieker.className;
+package teetime.variant.explicitScheduling.stage.kieker.className;
 
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 
 import kieker.analysis.stage.MappingFileParser;
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
+
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/kieker/className/ClassNameRegistryRepository.java b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/className/ClassNameRegistryRepository.java
similarity index 96%
rename from src/main/java/teetime/stage/kieker/className/ClassNameRegistryRepository.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/kieker/className/ClassNameRegistryRepository.java
index bbbd7911..fecda93a 100644
--- a/src/main/java/teetime/stage/kieker/className/ClassNameRegistryRepository.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/className/ClassNameRegistryRepository.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.kieker.className;
+package teetime.variant.explicitScheduling.stage.kieker.className;
 
 import java.io.File;
 import java.util.concurrent.ConcurrentHashMap;
diff --git a/src/main/java/teetime/stage/kieker/fileToRecord/BinaryFile2RecordFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/fileToRecord/BinaryFile2RecordFilter.java
similarity index 89%
rename from src/main/java/teetime/stage/kieker/fileToRecord/BinaryFile2RecordFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/kieker/fileToRecord/BinaryFile2RecordFilter.java
index cba76138..ea1a5bf1 100644
--- a/src/main/java/teetime/stage/kieker/fileToRecord/BinaryFile2RecordFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/fileToRecord/BinaryFile2RecordFilter.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.kieker.fileToRecord;
+package teetime.variant.explicitScheduling.stage.kieker.fileToRecord;
 
 import java.io.DataInputStream;
 import java.io.File;
@@ -23,11 +23,12 @@ import kieker.analysis.stage.RecordFromBinaryFileCreator;
 import kieker.common.exception.MonitoringRecordException;
 import kieker.common.record.IMonitoringRecord;
 import kieker.common.util.filesystem.BinaryCompressionMethod;
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
-import teetime.stage.kieker.className.ClassNameRegistryRepository;
+
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.stage.kieker.className.ClassNameRegistryRepository;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/kieker/fileToRecord/DatFile2RecordFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/fileToRecord/DatFile2RecordFilter.java
similarity index 71%
rename from src/main/java/teetime/stage/kieker/fileToRecord/DatFile2RecordFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/kieker/fileToRecord/DatFile2RecordFilter.java
index 04c7ef6f..db67b013 100644
--- a/src/main/java/teetime/stage/kieker/fileToRecord/DatFile2RecordFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/fileToRecord/DatFile2RecordFilter.java
@@ -13,20 +13,21 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.kieker.fileToRecord;
+package teetime.variant.explicitScheduling.stage.kieker.fileToRecord;
 
 import java.io.File;
 
 import kieker.common.record.IMonitoringRecord;
-import teetime.framework.concurrent.ConcurrentWorkStealingPipe;
-import teetime.framework.concurrent.ConcurrentWorkStealingPipeFactory;
-import teetime.framework.core.CompositeFilter;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
-import teetime.stage.io.File2TextLinesFilter;
-import teetime.stage.kieker.className.ClassNameRegistryRepository;
-import teetime.stage.kieker.fileToRecord.textLine.TextLine2RecordFilter;
-import teetime.stage.util.TextLine;
+
+import teetime.variant.explicitScheduling.framework.concurrent.ConcurrentWorkStealingPipe;
+import teetime.variant.explicitScheduling.framework.concurrent.ConcurrentWorkStealingPipeFactory;
+import teetime.variant.explicitScheduling.framework.core.CompositeFilter;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.stage.io.File2TextLinesFilter;
+import teetime.variant.explicitScheduling.stage.kieker.className.ClassNameRegistryRepository;
+import teetime.variant.explicitScheduling.stage.kieker.fileToRecord.textLine.TextLine2RecordFilter;
+import teetime.variant.explicitScheduling.stage.util.TextLine;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/kieker/fileToRecord/ZipFile2RecordFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/fileToRecord/ZipFile2RecordFilter.java
similarity index 90%
rename from src/main/java/teetime/stage/kieker/fileToRecord/ZipFile2RecordFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/kieker/fileToRecord/ZipFile2RecordFilter.java
index e38b30fb..4f086a90 100644
--- a/src/main/java/teetime/stage/kieker/fileToRecord/ZipFile2RecordFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/fileToRecord/ZipFile2RecordFilter.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.kieker.fileToRecord;
+package teetime.variant.explicitScheduling.stage.kieker.fileToRecord;
 
 import java.io.BufferedInputStream;
 import java.io.BufferedReader;
@@ -31,11 +31,12 @@ import java.util.zip.ZipInputStream;
 import kieker.analysis.stage.MappingFileParser;
 import kieker.common.record.IMonitoringRecord;
 import kieker.common.util.filesystem.FSUtil;
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
-import teetime.stage.kieker.className.ClassNameRegistry;
+
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.stage.kieker.className.ClassNameRegistry;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/kieker/fileToRecord/textLine/TextLine2MappingRegistryFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/fileToRecord/textLine/TextLine2MappingRegistryFilter.java
similarity index 89%
rename from src/main/java/teetime/stage/kieker/fileToRecord/textLine/TextLine2MappingRegistryFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/kieker/fileToRecord/textLine/TextLine2MappingRegistryFilter.java
index ba77bf91..81f0fb3f 100644
--- a/src/main/java/teetime/stage/kieker/fileToRecord/textLine/TextLine2MappingRegistryFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/fileToRecord/textLine/TextLine2MappingRegistryFilter.java
@@ -14,14 +14,15 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.stage.kieker.fileToRecord.textLine;
+package teetime.variant.explicitScheduling.stage.kieker.fileToRecord.textLine;
 
 import java.util.Map;
 
 import kieker.common.util.filesystem.FSUtil;
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
+
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/kieker/fileToRecord/textLine/TextLine2RecordFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/fileToRecord/textLine/TextLine2RecordFilter.java
similarity index 86%
rename from src/main/java/teetime/stage/kieker/fileToRecord/textLine/TextLine2RecordFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/kieker/fileToRecord/textLine/TextLine2RecordFilter.java
index e0599e80..e066fe23 100644
--- a/src/main/java/teetime/stage/kieker/fileToRecord/textLine/TextLine2RecordFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/fileToRecord/textLine/TextLine2RecordFilter.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.stage.kieker.fileToRecord.textLine;
+package teetime.variant.explicitScheduling.stage.kieker.fileToRecord.textLine;
 
 import java.util.HashSet;
 import java.util.Set;
@@ -24,13 +24,14 @@ import kieker.common.exception.IllegalRecordFormatException;
 import kieker.common.exception.MonitoringRecordException;
 import kieker.common.exception.UnknownRecordTypeException;
 import kieker.common.record.IMonitoringRecord;
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
-import teetime.stage.MappingException;
-import teetime.stage.kieker.className.ClassNameRegistryRepository;
-import teetime.stage.util.TextLine;
+
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.stage.MappingException;
+import teetime.variant.explicitScheduling.stage.kieker.className.ClassNameRegistryRepository;
+import teetime.variant.explicitScheduling.stage.util.TextLine;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/kieker/traceReconstruction/TraceReconstructionFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/traceReconstruction/TraceReconstructionFilter.java
similarity index 94%
rename from src/main/java/teetime/stage/kieker/traceReconstruction/TraceReconstructionFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/kieker/traceReconstruction/TraceReconstructionFilter.java
index 96cfe3d4..daf35265 100644
--- a/src/main/java/teetime/stage/kieker/traceReconstruction/TraceReconstructionFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/kieker/traceReconstruction/TraceReconstructionFilter.java
@@ -13,19 +13,19 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.kieker.traceReconstruction;
+package teetime.variant.explicitScheduling.stage.kieker.traceReconstruction;
 
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.concurrent.TimeUnit;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
 import teetime.util.concurrent.hashmap.ConcurrentHashMapWithDefault;
 import teetime.util.concurrent.hashmap.TraceBuffer;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 import kieker.analysis.plugin.filter.flow.TraceEventRecords;
 import kieker.common.record.flow.IFlowRecord;
diff --git a/src/main/java/teetime/stage/predicate/FileExtensionPredicate.java b/src/main/java/teetime/variant/explicitScheduling/stage/predicate/FileExtensionPredicate.java
similarity index 95%
rename from src/main/java/teetime/stage/predicate/FileExtensionPredicate.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/predicate/FileExtensionPredicate.java
index c7f3bb87..6ce007d3 100644
--- a/src/main/java/teetime/stage/predicate/FileExtensionPredicate.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/predicate/FileExtensionPredicate.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.predicate;
+package teetime.variant.explicitScheduling.stage.predicate;
 
 import java.io.File;
 
diff --git a/src/main/java/teetime/stage/predicate/IsDirectoryPredicate.java b/src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsDirectoryPredicate.java
similarity index 94%
rename from src/main/java/teetime/stage/predicate/IsDirectoryPredicate.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsDirectoryPredicate.java
index 21b09576..fbb7b817 100644
--- a/src/main/java/teetime/stage/predicate/IsDirectoryPredicate.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsDirectoryPredicate.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.predicate;
+package teetime.variant.explicitScheduling.stage.predicate;
 
 import java.io.File;
 
diff --git a/src/main/java/teetime/stage/predicate/IsIMonitoringRecordInRange.java b/src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsIMonitoringRecordInRange.java
similarity index 95%
rename from src/main/java/teetime/stage/predicate/IsIMonitoringRecordInRange.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsIMonitoringRecordInRange.java
index 8913146b..b7f6f464 100644
--- a/src/main/java/teetime/stage/predicate/IsIMonitoringRecordInRange.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsIMonitoringRecordInRange.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.predicate;
+package teetime.variant.explicitScheduling.stage.predicate;
 
 import kieker.common.record.IMonitoringRecord;
 
diff --git a/src/main/java/teetime/stage/predicate/IsInstanceOfPredicate.java b/src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsInstanceOfPredicate.java
similarity index 95%
rename from src/main/java/teetime/stage/predicate/IsInstanceOfPredicate.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsInstanceOfPredicate.java
index 3e0528ee..828591d4 100644
--- a/src/main/java/teetime/stage/predicate/IsInstanceOfPredicate.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsInstanceOfPredicate.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.predicate;
+package teetime.variant.explicitScheduling.stage.predicate;
 
 import java.util.Collection;
 
diff --git a/src/main/java/teetime/stage/predicate/IsOperationExecutionRecordInRange.java b/src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsOperationExecutionRecordInRange.java
similarity index 96%
rename from src/main/java/teetime/stage/predicate/IsOperationExecutionRecordInRange.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsOperationExecutionRecordInRange.java
index fcb6ed66..06d6a2b5 100644
--- a/src/main/java/teetime/stage/predicate/IsOperationExecutionRecordInRange.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsOperationExecutionRecordInRange.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.predicate;
+package teetime.variant.explicitScheduling.stage.predicate;
 
 import kieker.common.record.controlflow.OperationExecutionRecord;
 
diff --git a/src/main/java/teetime/stage/predicate/IsOperationExecutionRecordTraceIdPredicate.java b/src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsOperationExecutionRecordTraceIdPredicate.java
similarity index 95%
rename from src/main/java/teetime/stage/predicate/IsOperationExecutionRecordTraceIdPredicate.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsOperationExecutionRecordTraceIdPredicate.java
index b59f5bcd..f2b60961 100644
--- a/src/main/java/teetime/stage/predicate/IsOperationExecutionRecordTraceIdPredicate.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsOperationExecutionRecordTraceIdPredicate.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.predicate;
+package teetime.variant.explicitScheduling.stage.predicate;
 
 import java.util.Set;
 
diff --git a/src/main/java/teetime/stage/predicate/IsSuperTypePredicate.java b/src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsSuperTypePredicate.java
similarity index 95%
rename from src/main/java/teetime/stage/predicate/IsSuperTypePredicate.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsSuperTypePredicate.java
index 2c29775a..3be61c14 100644
--- a/src/main/java/teetime/stage/predicate/IsSuperTypePredicate.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsSuperTypePredicate.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.predicate;
+package teetime.variant.explicitScheduling.stage.predicate;
 
 import java.util.Collection;
 
diff --git a/src/main/java/teetime/stage/predicate/IsTimestampInRange.java b/src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsTimestampInRange.java
similarity index 95%
rename from src/main/java/teetime/stage/predicate/IsTimestampInRange.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsTimestampInRange.java
index 42ad92d5..53d715ad 100644
--- a/src/main/java/teetime/stage/predicate/IsTimestampInRange.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsTimestampInRange.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.predicate;
+package teetime.variant.explicitScheduling.stage.predicate;
 
 import com.google.common.base.Predicate;
 
diff --git a/src/main/java/teetime/stage/predicate/IsTraceIdPredicate.java b/src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsTraceIdPredicate.java
similarity index 95%
rename from src/main/java/teetime/stage/predicate/IsTraceIdPredicate.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsTraceIdPredicate.java
index e1d369b3..48f6f8c4 100644
--- a/src/main/java/teetime/stage/predicate/IsTraceIdPredicate.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/predicate/IsTraceIdPredicate.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.predicate;
+package teetime.variant.explicitScheduling.stage.predicate;
 
 import java.util.Set;
 
diff --git a/src/main/java/teetime/stage/predicate/PredicateFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/predicate/PredicateFilter.java
similarity index 85%
rename from src/main/java/teetime/stage/predicate/PredicateFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/predicate/PredicateFilter.java
index 9a672bfa..370bdc24 100644
--- a/src/main/java/teetime/stage/predicate/PredicateFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/predicate/PredicateFilter.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.predicate;
+package teetime.variant.explicitScheduling.stage.predicate;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 import com.google.common.base.Predicate;
 
diff --git a/src/main/java/teetime/stage/stringBuffer/StringBufferFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/stringBuffer/StringBufferFilter.java
similarity index 84%
rename from src/main/java/teetime/stage/stringBuffer/StringBufferFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/stringBuffer/StringBufferFilter.java
index 0419220c..426de753 100644
--- a/src/main/java/teetime/stage/stringBuffer/StringBufferFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/stringBuffer/StringBufferFilter.java
@@ -13,17 +13,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.stringBuffer;
+package teetime.variant.explicitScheduling.stage.stringBuffer;
 
 import java.util.Collection;
 import java.util.LinkedList;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
-import teetime.stage.stringBuffer.handler.AbstractDataTypeHandler;
-import teetime.stage.stringBuffer.util.KiekerHashMap;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.stage.stringBuffer.handler.AbstractDataTypeHandler;
+import teetime.variant.explicitScheduling.stage.stringBuffer.util.KiekerHashMap;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/stringBuffer/handler/AbstractDataTypeHandler.java b/src/main/java/teetime/variant/explicitScheduling/stage/stringBuffer/handler/AbstractDataTypeHandler.java
similarity index 89%
rename from src/main/java/teetime/stage/stringBuffer/handler/AbstractDataTypeHandler.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/stringBuffer/handler/AbstractDataTypeHandler.java
index 4badc3aa..bb0c2140 100644
--- a/src/main/java/teetime/stage/stringBuffer/handler/AbstractDataTypeHandler.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/stringBuffer/handler/AbstractDataTypeHandler.java
@@ -13,9 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.stringBuffer.handler;
+package teetime.variant.explicitScheduling.stage.stringBuffer.handler;
+
+import teetime.variant.explicitScheduling.stage.stringBuffer.util.KiekerHashMap;
 
-import teetime.stage.stringBuffer.util.KiekerHashMap;
 import kieker.common.logging.Log;
 
 
diff --git a/src/main/java/teetime/stage/stringBuffer/handler/IMonitoringRecordHandler.java b/src/main/java/teetime/variant/explicitScheduling/stage/stringBuffer/handler/IMonitoringRecordHandler.java
similarity index 96%
rename from src/main/java/teetime/stage/stringBuffer/handler/IMonitoringRecordHandler.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/stringBuffer/handler/IMonitoringRecordHandler.java
index ee345747..6d6f4e5c 100644
--- a/src/main/java/teetime/stage/stringBuffer/handler/IMonitoringRecordHandler.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/stringBuffer/handler/IMonitoringRecordHandler.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.stringBuffer.handler;
+package teetime.variant.explicitScheduling.stage.stringBuffer.handler;
 
 import kieker.common.exception.MonitoringRecordException;
 import kieker.common.record.AbstractMonitoringRecord;
diff --git a/src/main/java/teetime/stage/stringBuffer/handler/StringHandler.java b/src/main/java/teetime/variant/explicitScheduling/stage/stringBuffer/handler/StringHandler.java
similarity index 93%
rename from src/main/java/teetime/stage/stringBuffer/handler/StringHandler.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/stringBuffer/handler/StringHandler.java
index 82c356fa..eac8f68a 100644
--- a/src/main/java/teetime/stage/stringBuffer/handler/StringHandler.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/stringBuffer/handler/StringHandler.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.stringBuffer.handler;
+package teetime.variant.explicitScheduling.stage.stringBuffer.handler;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/stringBuffer/util/KiekerHashMap.java b/src/main/java/teetime/variant/explicitScheduling/stage/stringBuffer/util/KiekerHashMap.java
similarity index 99%
rename from src/main/java/teetime/stage/stringBuffer/util/KiekerHashMap.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/stringBuffer/util/KiekerHashMap.java
index 22542a58..0121ad50 100644
--- a/src/main/java/teetime/stage/stringBuffer/util/KiekerHashMap.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/stringBuffer/util/KiekerHashMap.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.stringBuffer.util;
+package teetime.variant.explicitScheduling.stage.stringBuffer.util;
 
 import java.lang.ref.SoftReference;
 import java.util.concurrent.locks.ReentrantLock;
diff --git a/src/main/java/teetime/stage/throughput/AnalysisThroughputFilter.java b/src/main/java/teetime/variant/explicitScheduling/stage/throughput/AnalysisThroughputFilter.java
similarity index 86%
rename from src/main/java/teetime/stage/throughput/AnalysisThroughputFilter.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/throughput/AnalysisThroughputFilter.java
index 665fcf4e..5d3b6629 100644
--- a/src/main/java/teetime/stage/throughput/AnalysisThroughputFilter.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/throughput/AnalysisThroughputFilter.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.throughput;
+package teetime.variant.explicitScheduling.stage.throughput;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
-import teetime.framework.core.IOutputPort;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.IOutputPort;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/throughput/ThroughputAnalysisResult.java b/src/main/java/teetime/variant/explicitScheduling/stage/throughput/ThroughputAnalysisResult.java
similarity index 95%
rename from src/main/java/teetime/stage/throughput/ThroughputAnalysisResult.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/throughput/ThroughputAnalysisResult.java
index 35c686b0..147aec0c 100644
--- a/src/main/java/teetime/stage/throughput/ThroughputAnalysisResult.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/throughput/ThroughputAnalysisResult.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.throughput;
+package teetime.variant.explicitScheduling.stage.throughput;
 
 /**
  * @author Christian Wulf
diff --git a/src/main/java/teetime/stage/util/TextLine.java b/src/main/java/teetime/variant/explicitScheduling/stage/util/TextLine.java
similarity index 95%
rename from src/main/java/teetime/stage/util/TextLine.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/util/TextLine.java
index cc2d9acd..016463d9 100644
--- a/src/main/java/teetime/stage/util/TextLine.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/util/TextLine.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.stage.util;
+package teetime.variant.explicitScheduling.stage.util;
 
 import java.io.File;
 
diff --git a/src/main/java/teetime/stage/visualization/IWebVisualizationSink.java b/src/main/java/teetime/variant/explicitScheduling/stage/visualization/IWebVisualizationSink.java
similarity index 94%
rename from src/main/java/teetime/stage/visualization/IWebVisualizationSink.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/visualization/IWebVisualizationSink.java
index b352004a..fe1fad49 100644
--- a/src/main/java/teetime/stage/visualization/IWebVisualizationSink.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/visualization/IWebVisualizationSink.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.stage.visualization;
+package teetime.variant.explicitScheduling.stage.visualization;
 
 /**
  * @author Nils Christian Ehmke
diff --git a/src/main/java/teetime/stage/visualization/PlainTextWebVisualizationSink.java b/src/main/java/teetime/variant/explicitScheduling/stage/visualization/PlainTextWebVisualizationSink.java
similarity index 86%
rename from src/main/java/teetime/stage/visualization/PlainTextWebVisualizationSink.java
rename to src/main/java/teetime/variant/explicitScheduling/stage/visualization/PlainTextWebVisualizationSink.java
index 2bf71599..dea77fb4 100644
--- a/src/main/java/teetime/stage/visualization/PlainTextWebVisualizationSink.java
+++ b/src/main/java/teetime/variant/explicitScheduling/stage/visualization/PlainTextWebVisualizationSink.java
@@ -14,11 +14,11 @@
  * limitations under the License.
  ***************************************************************************/
 
-package teetime.stage.visualization;
+package teetime.variant.explicitScheduling.stage.visualization;
 
-import teetime.framework.core.AbstractFilter;
-import teetime.framework.core.Context;
-import teetime.framework.core.IInputPort;
+import teetime.variant.explicitScheduling.framework.core.AbstractFilter;
+import teetime.variant.explicitScheduling.framework.core.Context;
+import teetime.variant.explicitScheduling.framework.core.IInputPort;
 
 /**
  * @author Nils Christian Ehmke, Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/methodcall/stage/AbstractStage.java b/src/main/java/teetime/variant/methodcall/framework/core/AbstractStage.java
similarity index 93%
rename from src/test/java/teetime/examples/throughput/methodcall/stage/AbstractStage.java
rename to src/main/java/teetime/variant/methodcall/framework/core/AbstractStage.java
index 0e7614b2..947f68b5 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/stage/AbstractStage.java
+++ b/src/main/java/teetime/variant/methodcall/framework/core/AbstractStage.java
@@ -1,9 +1,5 @@
-package teetime.examples.throughput.methodcall.stage;
+package teetime.variant.methodcall.framework.core;
 
-import teetime.examples.throughput.methodcall.InputPort;
-import teetime.examples.throughput.methodcall.OutputPort;
-import teetime.examples.throughput.methodcall.Stage;
-import teetime.examples.throughput.methodcall.StageWithPort;
 import teetime.util.list.CommittableQueue;
 
 public abstract class AbstractStage<I, O> implements StageWithPort<I, O> {
diff --git a/src/test/java/teetime/examples/throughput/methodcall/stage/ConsumerStage.java b/src/main/java/teetime/variant/methodcall/framework/core/ConsumerStage.java
similarity index 94%
rename from src/test/java/teetime/examples/throughput/methodcall/stage/ConsumerStage.java
rename to src/main/java/teetime/variant/methodcall/framework/core/ConsumerStage.java
index e9db16c8..ea72ab47 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/stage/ConsumerStage.java
+++ b/src/main/java/teetime/variant/methodcall/framework/core/ConsumerStage.java
@@ -1,4 +1,4 @@
-package teetime.examples.throughput.methodcall.stage;
+package teetime.variant.methodcall.framework.core;
 
 import teetime.util.list.CommittableQueue;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/InputPort.java b/src/main/java/teetime/variant/methodcall/framework/core/InputPort.java
similarity index 74%
rename from src/test/java/teetime/examples/throughput/methodcall/InputPort.java
rename to src/main/java/teetime/variant/methodcall/framework/core/InputPort.java
index 02e69fd4..f74b2bfc 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/InputPort.java
+++ b/src/main/java/teetime/variant/methodcall/framework/core/InputPort.java
@@ -1,4 +1,6 @@
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.framework.core;
+
+import teetime.variant.methodcall.framework.core.pipe.IPipe;
 
 public class InputPort<T> {
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/OutputPort.java b/src/main/java/teetime/variant/methodcall/framework/core/OutputPort.java
similarity index 68%
rename from src/test/java/teetime/examples/throughput/methodcall/OutputPort.java
rename to src/main/java/teetime/variant/methodcall/framework/core/OutputPort.java
index 837d67eb..b7612df5 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/OutputPort.java
+++ b/src/main/java/teetime/variant/methodcall/framework/core/OutputPort.java
@@ -1,4 +1,6 @@
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.framework.core;
+
+import teetime.variant.methodcall.framework.core.pipe.IPipe;
 
 public class OutputPort<T> {
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/stage/Pipeline.java b/src/main/java/teetime/variant/methodcall/framework/core/Pipeline.java
similarity index 95%
rename from src/test/java/teetime/examples/throughput/methodcall/stage/Pipeline.java
rename to src/main/java/teetime/variant/methodcall/framework/core/Pipeline.java
index 14a5ba46..26567378 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/stage/Pipeline.java
+++ b/src/main/java/teetime/variant/methodcall/framework/core/Pipeline.java
@@ -1,14 +1,11 @@
-package teetime.examples.throughput.methodcall.stage;
+package teetime.variant.methodcall.framework.core;
 
 import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
 
-import teetime.examples.throughput.methodcall.InputPort;
-import teetime.examples.throughput.methodcall.OutputPort;
-import teetime.examples.throughput.methodcall.Stage;
-import teetime.examples.throughput.methodcall.StageWithPort;
 import teetime.util.list.CommittableQueue;
+import teetime.variant.methodcall.stage.EndStage;
 
 public class Pipeline<I, O> implements StageWithPort<I, O> {
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/stage/ProducerStage.java b/src/main/java/teetime/variant/methodcall/framework/core/ProducerStage.java
similarity index 92%
rename from src/test/java/teetime/examples/throughput/methodcall/stage/ProducerStage.java
rename to src/main/java/teetime/variant/methodcall/framework/core/ProducerStage.java
index b87d0483..b032b0e3 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/stage/ProducerStage.java
+++ b/src/main/java/teetime/variant/methodcall/framework/core/ProducerStage.java
@@ -1,4 +1,4 @@
-package teetime.examples.throughput.methodcall.stage;
+package teetime.variant.methodcall.framework.core;
 
 import teetime.util.list.CommittableQueue;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/RunnableStage.java b/src/main/java/teetime/variant/methodcall/framework/core/RunnableStage.java
similarity index 86%
rename from src/test/java/teetime/examples/throughput/methodcall/RunnableStage.java
rename to src/main/java/teetime/variant/methodcall/framework/core/RunnableStage.java
index 57107f5a..61e9c6b4 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/RunnableStage.java
+++ b/src/main/java/teetime/variant/methodcall/framework/core/RunnableStage.java
@@ -1,4 +1,4 @@
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.framework.core;
 
 public class RunnableStage implements Runnable {
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/Stage.java b/src/main/java/teetime/variant/methodcall/framework/core/Stage.java
similarity index 92%
rename from src/test/java/teetime/examples/throughput/methodcall/Stage.java
rename to src/main/java/teetime/variant/methodcall/framework/core/Stage.java
index a1d926aa..95ac0b02 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/Stage.java
+++ b/src/main/java/teetime/variant/methodcall/framework/core/Stage.java
@@ -1,4 +1,4 @@
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.framework.core;
 
 import teetime.util.list.CommittableQueue;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/StageWithPort.java b/src/main/java/teetime/variant/methodcall/framework/core/StageWithPort.java
similarity index 83%
rename from src/test/java/teetime/examples/throughput/methodcall/StageWithPort.java
rename to src/main/java/teetime/variant/methodcall/framework/core/StageWithPort.java
index d6953540..9246317e 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/StageWithPort.java
+++ b/src/main/java/teetime/variant/methodcall/framework/core/StageWithPort.java
@@ -1,4 +1,4 @@
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.framework.core;
 
 public interface StageWithPort<I, O> extends Stage<I, O> {
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/AbstractPipe.java b/src/main/java/teetime/variant/methodcall/framework/core/pipe/AbstractPipe.java
similarity index 86%
rename from src/test/java/teetime/examples/throughput/methodcall/AbstractPipe.java
rename to src/main/java/teetime/variant/methodcall/framework/core/pipe/AbstractPipe.java
index e0a02f44..390443af 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/AbstractPipe.java
+++ b/src/main/java/teetime/variant/methodcall/framework/core/pipe/AbstractPipe.java
@@ -1,4 +1,4 @@
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.framework.core.pipe;
 
 import java.util.concurrent.atomic.AtomicBoolean;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/IPipe.java b/src/main/java/teetime/variant/methodcall/framework/core/pipe/IPipe.java
similarity index 83%
rename from src/test/java/teetime/examples/throughput/methodcall/IPipe.java
rename to src/main/java/teetime/variant/methodcall/framework/core/pipe/IPipe.java
index d382daa9..3551eb1f 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/IPipe.java
+++ b/src/main/java/teetime/variant/methodcall/framework/core/pipe/IPipe.java
@@ -1,4 +1,4 @@
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.framework.core.pipe;
 
 public interface IPipe<T> {
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/OrderedGrowableArrayPipe.java b/src/main/java/teetime/variant/methodcall/framework/core/pipe/OrderedGrowableArrayPipe.java
similarity index 85%
rename from src/test/java/teetime/examples/throughput/methodcall/OrderedGrowableArrayPipe.java
rename to src/main/java/teetime/variant/methodcall/framework/core/pipe/OrderedGrowableArrayPipe.java
index 7f5aea2f..7989ba04 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/OrderedGrowableArrayPipe.java
+++ b/src/main/java/teetime/variant/methodcall/framework/core/pipe/OrderedGrowableArrayPipe.java
@@ -1,6 +1,8 @@
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.framework.core.pipe;
 
 import teetime.util.concurrent.workstealing.CircularArray;
+import teetime.variant.methodcall.framework.core.InputPort;
+import teetime.variant.methodcall.framework.core.OutputPort;
 
 public class OrderedGrowableArrayPipe<T> extends AbstractPipe<T> {
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/OrderedGrowablePipe.java b/src/main/java/teetime/variant/methodcall/framework/core/pipe/OrderedGrowablePipe.java
similarity index 82%
rename from src/test/java/teetime/examples/throughput/methodcall/OrderedGrowablePipe.java
rename to src/main/java/teetime/variant/methodcall/framework/core/pipe/OrderedGrowablePipe.java
index 645cd004..124d1c7c 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/OrderedGrowablePipe.java
+++ b/src/main/java/teetime/variant/methodcall/framework/core/pipe/OrderedGrowablePipe.java
@@ -1,7 +1,10 @@
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.framework.core.pipe;
 
 import java.util.LinkedList;
 
+import teetime.variant.methodcall.framework.core.InputPort;
+import teetime.variant.methodcall.framework.core.OutputPort;
+
 public class OrderedGrowablePipe<T> extends AbstractPipe<T> {
 
 	private LinkedList<T> elements;
diff --git a/src/test/java/teetime/examples/throughput/methodcall/Pipe.java b/src/main/java/teetime/variant/methodcall/framework/core/pipe/Pipe.java
similarity index 88%
rename from src/test/java/teetime/examples/throughput/methodcall/Pipe.java
rename to src/main/java/teetime/variant/methodcall/framework/core/pipe/Pipe.java
index 0e6081b0..e710e6fa 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/Pipe.java
+++ b/src/main/java/teetime/variant/methodcall/framework/core/pipe/Pipe.java
@@ -1,6 +1,8 @@
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.framework.core.pipe;
 
 import teetime.util.list.CommittableResizableArrayQueue;
+import teetime.variant.methodcall.framework.core.InputPort;
+import teetime.variant.methodcall.framework.core.OutputPort;
 
 public class Pipe<T> extends AbstractPipe<T> {
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/SingleElementPipe.java b/src/main/java/teetime/variant/methodcall/framework/core/pipe/SingleElementPipe.java
similarity index 83%
rename from src/test/java/teetime/examples/throughput/methodcall/SingleElementPipe.java
rename to src/main/java/teetime/variant/methodcall/framework/core/pipe/SingleElementPipe.java
index 44409ddb..c7f8053f 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/SingleElementPipe.java
+++ b/src/main/java/teetime/variant/methodcall/framework/core/pipe/SingleElementPipe.java
@@ -1,4 +1,7 @@
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.framework.core.pipe;
+
+import teetime.variant.methodcall.framework.core.InputPort;
+import teetime.variant.methodcall.framework.core.OutputPort;
 
 //public class SingleElementPipe<T> implements IPipe<T> {
 public class SingleElementPipe<T> extends AbstractPipe<T> {
diff --git a/src/test/java/teetime/examples/throughput/methodcall/SpScPipe.java b/src/main/java/teetime/variant/methodcall/framework/core/pipe/SpScPipe.java
similarity index 80%
rename from src/test/java/teetime/examples/throughput/methodcall/SpScPipe.java
rename to src/main/java/teetime/variant/methodcall/framework/core/pipe/SpScPipe.java
index b545cf38..2856c165 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/SpScPipe.java
+++ b/src/main/java/teetime/variant/methodcall/framework/core/pipe/SpScPipe.java
@@ -1,6 +1,8 @@
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.framework.core.pipe;
 
 import teetime.util.concurrent.spsc.FFBufferOrdered3;
+import teetime.variant.methodcall.framework.core.InputPort;
+import teetime.variant.methodcall.framework.core.OutputPort;
 
 public class SpScPipe<T> extends AbstractPipe<T> {
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/UnorderedGrowablePipe.java b/src/main/java/teetime/variant/methodcall/framework/core/pipe/UnorderedGrowablePipe.java
similarity index 93%
rename from src/test/java/teetime/examples/throughput/methodcall/UnorderedGrowablePipe.java
rename to src/main/java/teetime/variant/methodcall/framework/core/pipe/UnorderedGrowablePipe.java
index 87b94df6..fe5359ab 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/UnorderedGrowablePipe.java
+++ b/src/main/java/teetime/variant/methodcall/framework/core/pipe/UnorderedGrowablePipe.java
@@ -1,4 +1,7 @@
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.framework.core.pipe;
+
+import teetime.variant.methodcall.framework.core.InputPort;
+import teetime.variant.methodcall.framework.core.OutputPort;
 
 public class UnorderedGrowablePipe<T> extends AbstractPipe<T> {
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/stage/Clock.java b/src/main/java/teetime/variant/methodcall/stage/Clock.java
similarity index 92%
rename from src/test/java/teetime/examples/throughput/methodcall/stage/Clock.java
rename to src/main/java/teetime/variant/methodcall/stage/Clock.java
index f6d8fe3d..7479e205 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/stage/Clock.java
+++ b/src/main/java/teetime/variant/methodcall/stage/Clock.java
@@ -1,6 +1,7 @@
-package teetime.examples.throughput.methodcall.stage;
+package teetime.variant.methodcall.stage;
 
 import teetime.util.list.CommittableQueue;
+import teetime.variant.methodcall.framework.core.ProducerStage;
 
 public class Clock extends ProducerStage<Void, Long> {
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/stage/CollectorSink.java b/src/main/java/teetime/variant/methodcall/stage/CollectorSink.java
similarity index 95%
rename from src/test/java/teetime/examples/throughput/methodcall/stage/CollectorSink.java
rename to src/main/java/teetime/variant/methodcall/stage/CollectorSink.java
index 481d1272..4bc890e0 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/stage/CollectorSink.java
+++ b/src/main/java/teetime/variant/methodcall/stage/CollectorSink.java
@@ -13,11 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall.stage;
+package teetime.variant.methodcall.stage;
 
 import java.util.List;
 
 import teetime.util.list.CommittableQueue;
+import teetime.variant.methodcall.framework.core.ConsumerStage;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/methodcall/stage/Delay.java b/src/main/java/teetime/variant/methodcall/stage/Delay.java
similarity index 89%
rename from src/test/java/teetime/examples/throughput/methodcall/stage/Delay.java
rename to src/main/java/teetime/variant/methodcall/stage/Delay.java
index 5995c457..f5103209 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/stage/Delay.java
+++ b/src/main/java/teetime/variant/methodcall/stage/Delay.java
@@ -1,7 +1,8 @@
-package teetime.examples.throughput.methodcall.stage;
+package teetime.variant.methodcall.stage;
 
-import teetime.examples.throughput.methodcall.InputPort;
 import teetime.util.list.CommittableQueue;
+import teetime.variant.methodcall.framework.core.AbstractStage;
+import teetime.variant.methodcall.framework.core.InputPort;
 
 public class Delay<I> extends AbstractStage<I, I> {
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/stage/Distributor.java b/src/main/java/teetime/variant/methodcall/stage/Distributor.java
similarity index 92%
rename from src/test/java/teetime/examples/throughput/methodcall/stage/Distributor.java
rename to src/main/java/teetime/variant/methodcall/stage/Distributor.java
index 18e1cc95..ea56a54b 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/stage/Distributor.java
+++ b/src/main/java/teetime/variant/methodcall/stage/Distributor.java
@@ -1,11 +1,12 @@
-package teetime.examples.throughput.methodcall.stage;
+package teetime.variant.methodcall.stage;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import teetime.examples.throughput.methodcall.OutputPort;
 import teetime.util.concurrent.spsc.Pow2;
 import teetime.util.list.CommittableQueue;
+import teetime.variant.methodcall.framework.core.AbstractStage;
+import teetime.variant.methodcall.framework.core.OutputPort;
 
 public final class Distributor<T> extends AbstractStage<T, T> {
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/stage/EndStage.java b/src/main/java/teetime/variant/methodcall/stage/EndStage.java
similarity index 83%
rename from src/test/java/teetime/examples/throughput/methodcall/stage/EndStage.java
rename to src/main/java/teetime/variant/methodcall/stage/EndStage.java
index c5a501d5..f3c12625 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/stage/EndStage.java
+++ b/src/main/java/teetime/variant/methodcall/stage/EndStage.java
@@ -1,14 +1,14 @@
-package teetime.examples.throughput.methodcall.stage;
+package teetime.variant.methodcall.stage;
 
 import java.util.LinkedList;
 import java.util.List;
 
-import teetime.examples.throughput.methodcall.ConstructorClosure;
-import teetime.examples.throughput.methodcall.InputPort;
-import teetime.examples.throughput.methodcall.OutputPort;
-import teetime.examples.throughput.methodcall.Stage;
-import teetime.examples.throughput.methodcall.StageWithPort;
+import teetime.util.ConstructorClosure;
 import teetime.util.list.CommittableQueue;
+import teetime.variant.methodcall.framework.core.InputPort;
+import teetime.variant.methodcall.framework.core.OutputPort;
+import teetime.variant.methodcall.framework.core.Stage;
+import teetime.variant.methodcall.framework.core.StageWithPort;
 
 public class EndStage<T> implements StageWithPort<T, T> {
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/stage/Merger.java b/src/main/java/teetime/variant/methodcall/stage/Merger.java
similarity index 91%
rename from src/test/java/teetime/examples/throughput/methodcall/stage/Merger.java
rename to src/main/java/teetime/variant/methodcall/stage/Merger.java
index 4977757c..0c5a9f31 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/stage/Merger.java
+++ b/src/main/java/teetime/variant/methodcall/stage/Merger.java
@@ -1,11 +1,12 @@
-package teetime.examples.throughput.methodcall.stage;
+package teetime.variant.methodcall.stage;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import teetime.examples.throughput.methodcall.InputPort;
 import teetime.util.concurrent.spsc.Pow2;
 import teetime.util.list.CommittableQueue;
+import teetime.variant.methodcall.framework.core.AbstractStage;
+import teetime.variant.methodcall.framework.core.InputPort;
 
 public class Merger<T> extends AbstractStage<T, T> {
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/stage/NoopFilter.java b/src/main/java/teetime/variant/methodcall/stage/NoopFilter.java
similarity index 93%
rename from src/test/java/teetime/examples/throughput/methodcall/stage/NoopFilter.java
rename to src/main/java/teetime/variant/methodcall/stage/NoopFilter.java
index 98413fbb..ace51b02 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/stage/NoopFilter.java
+++ b/src/main/java/teetime/variant/methodcall/stage/NoopFilter.java
@@ -13,9 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall.stage;
+package teetime.variant.methodcall.stage;
 
 import teetime.util.list.CommittableQueue;
+import teetime.variant.methodcall.framework.core.ConsumerStage;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/methodcall/stage/ObjectProducer.java b/src/main/java/teetime/variant/methodcall/stage/ObjectProducer.java
similarity index 95%
rename from src/test/java/teetime/examples/throughput/methodcall/stage/ObjectProducer.java
rename to src/main/java/teetime/variant/methodcall/stage/ObjectProducer.java
index 9db2918a..efd8cbdc 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/stage/ObjectProducer.java
+++ b/src/main/java/teetime/variant/methodcall/stage/ObjectProducer.java
@@ -13,10 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall.stage;
+package teetime.variant.methodcall.stage;
 
-import teetime.examples.throughput.methodcall.ConstructorClosure;
+import teetime.util.ConstructorClosure;
 import teetime.util.list.CommittableQueue;
+import teetime.variant.methodcall.framework.core.ProducerStage;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/methodcall/stage/Relay.java b/src/main/java/teetime/variant/methodcall/stage/Relay.java
similarity index 90%
rename from src/test/java/teetime/examples/throughput/methodcall/stage/Relay.java
rename to src/main/java/teetime/variant/methodcall/stage/Relay.java
index c0677872..f1a35209 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/stage/Relay.java
+++ b/src/main/java/teetime/variant/methodcall/stage/Relay.java
@@ -1,6 +1,7 @@
-package teetime.examples.throughput.methodcall.stage;
+package teetime.variant.methodcall.stage;
 
 import teetime.util.list.CommittableQueue;
+import teetime.variant.methodcall.framework.core.AbstractStage;
 
 public class Relay<T> extends AbstractStage<T, T> {
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/stage/Sink.java b/src/main/java/teetime/variant/methodcall/stage/Sink.java
similarity index 79%
rename from src/test/java/teetime/examples/throughput/methodcall/stage/Sink.java
rename to src/main/java/teetime/variant/methodcall/stage/Sink.java
index 9e68db8f..89ff7c75 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/stage/Sink.java
+++ b/src/main/java/teetime/variant/methodcall/stage/Sink.java
@@ -1,6 +1,7 @@
-package teetime.examples.throughput.methodcall.stage;
+package teetime.variant.methodcall.stage;
 
 import teetime.util.list.CommittableQueue;
+import teetime.variant.methodcall.framework.core.ConsumerStage;
 
 public class Sink<T> extends ConsumerStage<T, T> {
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/stage/StartTimestampFilter.java b/src/main/java/teetime/variant/methodcall/stage/StartTimestampFilter.java
similarity index 90%
rename from src/test/java/teetime/examples/throughput/methodcall/stage/StartTimestampFilter.java
rename to src/main/java/teetime/variant/methodcall/stage/StartTimestampFilter.java
index da5b2c04..3619f24f 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/stage/StartTimestampFilter.java
+++ b/src/main/java/teetime/variant/methodcall/stage/StartTimestampFilter.java
@@ -13,10 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall.stage;
+package teetime.variant.methodcall.stage;
 
-import teetime.examples.throughput.TimestampObject;
 import teetime.util.list.CommittableQueue;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.methodcall.framework.core.ConsumerStage;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/methodcall/stage/StopTimestampFilter.java b/src/main/java/teetime/variant/methodcall/stage/StopTimestampFilter.java
similarity index 90%
rename from src/test/java/teetime/examples/throughput/methodcall/stage/StopTimestampFilter.java
rename to src/main/java/teetime/variant/methodcall/stage/StopTimestampFilter.java
index dd6691ca..07ee037a 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/stage/StopTimestampFilter.java
+++ b/src/main/java/teetime/variant/methodcall/stage/StopTimestampFilter.java
@@ -13,10 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall.stage;
+package teetime.variant.methodcall.stage;
 
-import teetime.examples.throughput.TimestampObject;
 import teetime.util.list.CommittableQueue;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.methodcall.framework.core.ConsumerStage;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/kieker/analysis/examples/throughput/ThroughputTimestampAnalysisTest.java b/src/test/java/kieker/analysis/examples/throughput/ThroughputTimestampAnalysisTest.java
index e324375a..8e5aa3e2 100644
--- a/src/test/java/kieker/analysis/examples/throughput/ThroughputTimestampAnalysisTest.java
+++ b/src/test/java/kieker/analysis/examples/throughput/ThroughputTimestampAnalysisTest.java
@@ -26,9 +26,9 @@ import kieker.common.logging.LogFactory;
 import org.junit.Before;
 import org.junit.Test;
 
-import teetime.examples.throughput.TimestampObject;
 import teetime.util.StatisticsUtil;
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 
 /**
diff --git a/src/test/java/teetime/examples/throughput/methodcall/OnDisableListener.java b/src/test/java/teetime/examples/throughput/methodcall/OnDisableListener.java
deleted file mode 100644
index 483733ea..00000000
--- a/src/test/java/teetime/examples/throughput/methodcall/OnDisableListener.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package teetime.examples.throughput.methodcall;
-
-public interface OnDisableListener {
-
-	void onDisable(Stage stage, int index);
-}
diff --git a/src/test/java/teetime/examples/recordReader/RecordReaderAnalysisTest.java b/src/test/java/teetime/variant/explicitScheduling/examples/recordReader/RecordReaderAnalysisTest.java
similarity index 93%
rename from src/test/java/teetime/examples/recordReader/RecordReaderAnalysisTest.java
rename to src/test/java/teetime/variant/explicitScheduling/examples/recordReader/RecordReaderAnalysisTest.java
index 3b7eb351..0de57c68 100644
--- a/src/test/java/teetime/examples/recordReader/RecordReaderAnalysisTest.java
+++ b/src/test/java/teetime/variant/explicitScheduling/examples/recordReader/RecordReaderAnalysisTest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.recordReader;
+package teetime.variant.explicitScheduling.examples.recordReader;
 
 import java.io.File;
 import java.util.LinkedList;
@@ -34,8 +34,9 @@ import kieker.common.util.registry.Registry;
 import org.junit.Assert;
 import org.junit.Test;
 
-import teetime.stage.kieker.className.ClassNameRegistry;
-import teetime.stage.kieker.className.ClassNameRegistryRepository;
+import teetime.variant.explicitScheduling.examples.recordReader.RecordReaderAnalysis;
+import teetime.variant.explicitScheduling.stage.kieker.className.ClassNameRegistry;
+import teetime.variant.explicitScheduling.stage.kieker.className.ClassNameRegistryRepository;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/ThroughputAnalysisTest.java b/src/test/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputAnalysisTest.java
similarity index 93%
rename from src/test/java/teetime/examples/throughput/ThroughputAnalysisTest.java
rename to src/test/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputAnalysisTest.java
index ef0e72ce..cadace42 100644
--- a/src/test/java/teetime/examples/throughput/ThroughputAnalysisTest.java
+++ b/src/test/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputAnalysisTest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.explicitScheduling.examples.throughput;
 
 import java.util.concurrent.Callable;
 
@@ -23,6 +23,7 @@ import org.junit.Before;
 import org.junit.Test;
 
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.ThroughputAnalysis;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/ThroughputTimestampAnalysisTest.java b/src/test/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputTimestampAnalysisTest.java
similarity index 90%
rename from src/test/java/teetime/examples/throughput/ThroughputTimestampAnalysisTest.java
rename to src/test/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputTimestampAnalysisTest.java
index 51cd195f..96f0aac2 100644
--- a/src/test/java/teetime/examples/throughput/ThroughputTimestampAnalysisTest.java
+++ b/src/test/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputTimestampAnalysisTest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.explicitScheduling.examples.throughput;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -24,6 +24,8 @@ import org.junit.Test;
 
 import teetime.util.StatisticsUtil;
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.ThroughputTimestampAnalysis;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 import kieker.common.logging.LogFactory;
 
diff --git a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis1Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment01/MethodCallThoughputTimestampAnalysis1Test.java
similarity index 92%
rename from src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis1Test.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment01/MethodCallThoughputTimestampAnalysis1Test.java
index 47f9be43..362f3426 100644
--- a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis1Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment01/MethodCallThoughputTimestampAnalysis1Test.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.methodcall.examples.experiment01;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -21,10 +21,10 @@ import java.util.List;
 import org.junit.Before;
 import org.junit.Test;
 
-import teetime.examples.throughput.methodcall.ConstructorClosure;
-import teetime.examples.throughput.methodcall.MethodCallThroughputAnalysis1;
+import teetime.util.ConstructorClosure;
 import teetime.util.StatisticsUtil;
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 import kieker.common.logging.LogFactory;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis1.java b/src/test/java/teetime/variant/methodcall/examples/experiment01/MethodCallThroughputAnalysis1.java
similarity index 85%
rename from src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis1.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment01/MethodCallThroughputAnalysis1.java
index b8933462..e53851df 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis1.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment01/MethodCallThroughputAnalysis1.java
@@ -13,17 +13,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.examples.experiment01;
 
 import java.util.List;
 
-import teetime.examples.throughput.TimestampObject;
-import teetime.examples.throughput.methodcall.stage.CollectorSink;
-import teetime.examples.throughput.methodcall.stage.NoopFilter;
-import teetime.examples.throughput.methodcall.stage.ObjectProducer;
-import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
-import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
-import teetime.framework.core.Analysis;
+import teetime.util.ConstructorClosure;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.methodcall.stage.CollectorSink;
+import teetime.variant.methodcall.stage.NoopFilter;
+import teetime.variant.methodcall.stage.ObjectProducer;
+import teetime.variant.methodcall.stage.StartTimestampFilter;
+import teetime.variant.methodcall.stage.StopTimestampFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis2Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment02/MethodCallThoughputTimestampAnalysis2Test.java
similarity index 92%
rename from src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis2Test.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment02/MethodCallThoughputTimestampAnalysis2Test.java
index 45564115..52a5cb25 100644
--- a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis2Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment02/MethodCallThoughputTimestampAnalysis2Test.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.methodcall.examples.experiment02;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -21,10 +21,10 @@ import java.util.List;
 import org.junit.Before;
 import org.junit.Test;
 
-import teetime.examples.throughput.methodcall.ConstructorClosure;
-import teetime.examples.throughput.methodcall.MethodCallThroughputAnalysis2;
+import teetime.util.ConstructorClosure;
 import teetime.util.StatisticsUtil;
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 import kieker.common.logging.LogFactory;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis2.java b/src/test/java/teetime/variant/methodcall/examples/experiment02/MethodCallThroughputAnalysis2.java
similarity index 86%
rename from src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis2.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment02/MethodCallThroughputAnalysis2.java
index 55f565cb..1155da2e 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis2.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment02/MethodCallThroughputAnalysis2.java
@@ -13,20 +13,21 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.examples.experiment02;
 
 import java.util.List;
 
-import teetime.examples.throughput.TimestampObject;
-import teetime.examples.throughput.methodcall.stage.CollectorSink;
-import teetime.examples.throughput.methodcall.stage.NoopFilter;
-import teetime.examples.throughput.methodcall.stage.ObjectProducer;
-import teetime.examples.throughput.methodcall.stage.Pipeline;
-import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
-import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
-import teetime.framework.core.Analysis;
+import teetime.util.ConstructorClosure;
 import teetime.util.list.CommittableQueue;
 import teetime.util.list.CommittableResizableArrayQueue;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.methodcall.framework.core.Pipeline;
+import teetime.variant.methodcall.stage.CollectorSink;
+import teetime.variant.methodcall.stage.NoopFilter;
+import teetime.variant.methodcall.stage.ObjectProducer;
+import teetime.variant.methodcall.stage.StartTimestampFilter;
+import teetime.variant.methodcall.stage.StopTimestampFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis3Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment03/MethodCallThoughputTimestampAnalysis3Test.java
similarity index 92%
rename from src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis3Test.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment03/MethodCallThoughputTimestampAnalysis3Test.java
index ee6947e8..0364bc93 100644
--- a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis3Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment03/MethodCallThoughputTimestampAnalysis3Test.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.methodcall.examples.experiment03;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -21,10 +21,10 @@ import java.util.List;
 import org.junit.Before;
 import org.junit.Test;
 
-import teetime.examples.throughput.methodcall.ConstructorClosure;
-import teetime.examples.throughput.methodcall.MethodCallThroughputAnalysis3;
+import teetime.util.ConstructorClosure;
 import teetime.util.StatisticsUtil;
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 import kieker.common.logging.LogFactory;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis3.java b/src/test/java/teetime/variant/methodcall/examples/experiment03/MethodCallThroughputAnalysis3.java
similarity index 86%
rename from src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis3.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment03/MethodCallThroughputAnalysis3.java
index e9876786..8611d466 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis3.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment03/MethodCallThroughputAnalysis3.java
@@ -13,19 +13,21 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.examples.experiment03;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
-import teetime.examples.throughput.TimestampObject;
-import teetime.examples.throughput.methodcall.stage.CollectorSink;
-import teetime.examples.throughput.methodcall.stage.NoopFilter;
-import teetime.examples.throughput.methodcall.stage.ObjectProducer;
-import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
-import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
-import teetime.framework.core.Analysis;
+import teetime.util.ConstructorClosure;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.methodcall.framework.core.Stage;
+import teetime.variant.methodcall.stage.CollectorSink;
+import teetime.variant.methodcall.stage.NoopFilter;
+import teetime.variant.methodcall.stage.ObjectProducer;
+import teetime.variant.methodcall.stage.StartTimestampFilter;
+import teetime.variant.methodcall.stage.StopTimestampFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis4Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment04/MethodCallThoughputTimestampAnalysis4Test.java
similarity index 92%
rename from src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis4Test.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment04/MethodCallThoughputTimestampAnalysis4Test.java
index 68f60772..c6b509c3 100644
--- a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis4Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment04/MethodCallThoughputTimestampAnalysis4Test.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.methodcall.examples.experiment04;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -21,10 +21,10 @@ import java.util.List;
 import org.junit.Before;
 import org.junit.Test;
 
-import teetime.examples.throughput.methodcall.ConstructorClosure;
-import teetime.examples.throughput.methodcall.MethodCallThroughputAnalysis4;
+import teetime.util.ConstructorClosure;
 import teetime.util.StatisticsUtil;
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 import kieker.common.logging.LogFactory;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis4.java b/src/test/java/teetime/variant/methodcall/examples/experiment04/MethodCallThroughputAnalysis4.java
similarity index 86%
rename from src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis4.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment04/MethodCallThroughputAnalysis4.java
index e543ad26..35983c03 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis4.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment04/MethodCallThroughputAnalysis4.java
@@ -13,19 +13,21 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.examples.experiment04;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
-import teetime.examples.throughput.TimestampObject;
-import teetime.examples.throughput.methodcall.stage.CollectorSink;
-import teetime.examples.throughput.methodcall.stage.NoopFilter;
-import teetime.examples.throughput.methodcall.stage.ObjectProducer;
-import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
-import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
-import teetime.framework.core.Analysis;
+import teetime.util.ConstructorClosure;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.methodcall.framework.core.Stage;
+import teetime.variant.methodcall.stage.CollectorSink;
+import teetime.variant.methodcall.stage.NoopFilter;
+import teetime.variant.methodcall.stage.ObjectProducer;
+import teetime.variant.methodcall.stage.StartTimestampFilter;
+import teetime.variant.methodcall.stage.StopTimestampFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis5Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment05/MethodCallThoughputTimestampAnalysis5Test.java
similarity index 92%
rename from src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis5Test.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment05/MethodCallThoughputTimestampAnalysis5Test.java
index 106e5b0b..bc13f683 100644
--- a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis5Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment05/MethodCallThoughputTimestampAnalysis5Test.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.methodcall.examples.experiment05;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -21,10 +21,10 @@ import java.util.List;
 import org.junit.Before;
 import org.junit.Test;
 
-import teetime.examples.throughput.methodcall.ConstructorClosure;
-import teetime.examples.throughput.methodcall.MethodCallThroughputAnalysis5;
+import teetime.util.ConstructorClosure;
 import teetime.util.StatisticsUtil;
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 import kieker.common.logging.LogFactory;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis5.java b/src/test/java/teetime/variant/methodcall/examples/experiment05/MethodCallThroughputAnalysis5.java
similarity index 86%
rename from src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis5.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment05/MethodCallThroughputAnalysis5.java
index 4c59946b..503eadef 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis5.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment05/MethodCallThroughputAnalysis5.java
@@ -13,19 +13,21 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.examples.experiment05;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
-import teetime.examples.throughput.TimestampObject;
-import teetime.examples.throughput.methodcall.stage.CollectorSink;
-import teetime.examples.throughput.methodcall.stage.NoopFilter;
-import teetime.examples.throughput.methodcall.stage.ObjectProducer;
-import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
-import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
-import teetime.framework.core.Analysis;
+import teetime.util.ConstructorClosure;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.methodcall.framework.core.Stage;
+import teetime.variant.methodcall.stage.CollectorSink;
+import teetime.variant.methodcall.stage.NoopFilter;
+import teetime.variant.methodcall.stage.ObjectProducer;
+import teetime.variant.methodcall.stage.StartTimestampFilter;
+import teetime.variant.methodcall.stage.StopTimestampFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis6Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment06/MethodCallThoughputTimestampAnalysis6Test.java
similarity index 92%
rename from src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis6Test.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment06/MethodCallThoughputTimestampAnalysis6Test.java
index 72c788c7..d1e00ef9 100644
--- a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis6Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment06/MethodCallThoughputTimestampAnalysis6Test.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.methodcall.examples.experiment06;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -21,10 +21,10 @@ import java.util.List;
 import org.junit.Before;
 import org.junit.Test;
 
-import teetime.examples.throughput.methodcall.ConstructorClosure;
-import teetime.examples.throughput.methodcall.MethodCallThroughputAnalysis6;
+import teetime.util.ConstructorClosure;
 import teetime.util.StatisticsUtil;
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 import kieker.common.logging.LogFactory;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis6.java b/src/test/java/teetime/variant/methodcall/examples/experiment06/MethodCallThroughputAnalysis6.java
similarity index 98%
rename from src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis6.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment06/MethodCallThroughputAnalysis6.java
index 4d3a33be..04faa048 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis6.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment06/MethodCallThroughputAnalysis6.java
@@ -13,19 +13,21 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.examples.experiment06;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
-import teetime.examples.throughput.TimestampObject;
-import teetime.examples.throughput.methodcall.stage.CollectorSink;
-import teetime.examples.throughput.methodcall.stage.NoopFilter;
-import teetime.examples.throughput.methodcall.stage.ObjectProducer;
-import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
-import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
-import teetime.framework.core.Analysis;
+import teetime.util.ConstructorClosure;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.methodcall.framework.core.Stage;
+import teetime.variant.methodcall.stage.CollectorSink;
+import teetime.variant.methodcall.stage.NoopFilter;
+import teetime.variant.methodcall.stage.ObjectProducer;
+import teetime.variant.methodcall.stage.StartTimestampFilter;
+import teetime.variant.methodcall.stage.StopTimestampFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis7Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment07/MethodCallThoughputTimestampAnalysis7Test.java
similarity index 92%
rename from src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis7Test.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment07/MethodCallThoughputTimestampAnalysis7Test.java
index bb544218..729150eb 100644
--- a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis7Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment07/MethodCallThoughputTimestampAnalysis7Test.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.methodcall.examples.experiment07;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -21,10 +21,10 @@ import java.util.List;
 import org.junit.Before;
 import org.junit.Test;
 
-import teetime.examples.throughput.methodcall.ConstructorClosure;
-import teetime.examples.throughput.methodcall.MethodCallThroughputAnalysis7;
+import teetime.util.ConstructorClosure;
 import teetime.util.StatisticsUtil;
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 import kieker.common.logging.LogFactory;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis7.java b/src/test/java/teetime/variant/methodcall/examples/experiment07/MethodCallThroughputAnalysis7.java
similarity index 87%
rename from src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis7.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment07/MethodCallThroughputAnalysis7.java
index 8b5ac8a9..9b11230f 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis7.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment07/MethodCallThroughputAnalysis7.java
@@ -13,20 +13,21 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.examples.experiment07;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
-import teetime.examples.throughput.TimestampObject;
-import teetime.examples.throughput.methodcall.stage.AbstractStage;
-import teetime.examples.throughput.methodcall.stage.CollectorSink;
-import teetime.examples.throughput.methodcall.stage.NoopFilter;
-import teetime.examples.throughput.methodcall.stage.ObjectProducer;
-import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
-import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
-import teetime.framework.core.Analysis;
+import teetime.util.ConstructorClosure;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.methodcall.framework.core.AbstractStage;
+import teetime.variant.methodcall.stage.CollectorSink;
+import teetime.variant.methodcall.stage.NoopFilter;
+import teetime.variant.methodcall.stage.ObjectProducer;
+import teetime.variant.methodcall.stage.StartTimestampFilter;
+import teetime.variant.methodcall.stage.StopTimestampFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis8Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment08/MethodCallThoughputTimestampAnalysis8Test.java
similarity index 92%
rename from src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis8Test.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment08/MethodCallThoughputTimestampAnalysis8Test.java
index 902155fb..2dac38f1 100644
--- a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis8Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment08/MethodCallThoughputTimestampAnalysis8Test.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.methodcall.examples.experiment08;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -21,10 +21,10 @@ import java.util.List;
 import org.junit.Before;
 import org.junit.Test;
 
-import teetime.examples.throughput.methodcall.ConstructorClosure;
-import teetime.examples.throughput.methodcall.MethodCallThroughputAnalysis8;
+import teetime.util.ConstructorClosure;
 import teetime.util.StatisticsUtil;
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 import kieker.common.logging.LogFactory;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis8.java b/src/test/java/teetime/variant/methodcall/examples/experiment08/MethodCallThroughputAnalysis8.java
similarity index 86%
rename from src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis8.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment08/MethodCallThroughputAnalysis8.java
index 30ba261b..7045b348 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis8.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment08/MethodCallThroughputAnalysis8.java
@@ -13,20 +13,22 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.examples.experiment08;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
-import teetime.examples.throughput.TimestampObject;
-import teetime.examples.throughput.methodcall.stage.AbstractStage;
-import teetime.examples.throughput.methodcall.stage.CollectorSink;
-import teetime.examples.throughput.methodcall.stage.NoopFilter;
-import teetime.examples.throughput.methodcall.stage.ObjectProducer;
-import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
-import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
-import teetime.framework.core.Analysis;
+import teetime.util.ConstructorClosure;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.methodcall.framework.core.AbstractStage;
+import teetime.variant.methodcall.framework.core.Stage;
+import teetime.variant.methodcall.stage.CollectorSink;
+import teetime.variant.methodcall.stage.NoopFilter;
+import teetime.variant.methodcall.stage.ObjectProducer;
+import teetime.variant.methodcall.stage.StartTimestampFilter;
+import teetime.variant.methodcall.stage.StopTimestampFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis9Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java
similarity index 92%
rename from src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis9Test.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java
index 5f781ada..a09a084c 100644
--- a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis9Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.methodcall.examples.experiment09;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -21,10 +21,10 @@ import java.util.List;
 import org.junit.Before;
 import org.junit.Test;
 
-import teetime.examples.throughput.methodcall.ConstructorClosure;
-import teetime.examples.throughput.methodcall.MethodCallThroughputAnalysis9;
+import teetime.util.ConstructorClosure;
 import teetime.util.StatisticsUtil;
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 import kieker.common.logging.LogFactory;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis9.java b/src/test/java/teetime/variant/methodcall/examples/experiment09/MethodCallThroughputAnalysis9.java
similarity index 83%
rename from src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis9.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment09/MethodCallThroughputAnalysis9.java
index 075bb788..2ace0eb4 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis9.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment09/MethodCallThroughputAnalysis9.java
@@ -13,18 +13,21 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.examples.experiment09;
 
 import java.util.List;
 
-import teetime.examples.throughput.TimestampObject;
-import teetime.examples.throughput.methodcall.stage.CollectorSink;
-import teetime.examples.throughput.methodcall.stage.NoopFilter;
-import teetime.examples.throughput.methodcall.stage.ObjectProducer;
-import teetime.examples.throughput.methodcall.stage.Pipeline;
-import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
-import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
-import teetime.framework.core.Analysis;
+import teetime.util.ConstructorClosure;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.methodcall.framework.core.Pipeline;
+import teetime.variant.methodcall.framework.core.RunnableStage;
+import teetime.variant.methodcall.framework.core.pipe.Pipe;
+import teetime.variant.methodcall.stage.CollectorSink;
+import teetime.variant.methodcall.stage.NoopFilter;
+import teetime.variant.methodcall.stage.ObjectProducer;
+import teetime.variant.methodcall.stage.StartTimestampFilter;
+import teetime.variant.methodcall.stage.StopTimestampFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis10Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java
similarity index 92%
rename from src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis10Test.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java
index 53802779..0c1e3e55 100644
--- a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis10Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.methodcall.examples.experiment10;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -21,10 +21,10 @@ import java.util.List;
 import org.junit.Before;
 import org.junit.Test;
 
-import teetime.examples.throughput.methodcall.ConstructorClosure;
-import teetime.examples.throughput.methodcall.MethodCallThroughputAnalysis10;
+import teetime.util.ConstructorClosure;
 import teetime.util.StatisticsUtil;
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 import kieker.common.logging.LogFactory;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis10.java b/src/test/java/teetime/variant/methodcall/examples/experiment10/MethodCallThroughputAnalysis10.java
similarity index 83%
rename from src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis10.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment10/MethodCallThroughputAnalysis10.java
index cd520670..35282b24 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis10.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment10/MethodCallThroughputAnalysis10.java
@@ -13,18 +13,21 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.examples.experiment10;
 
 import java.util.List;
 
-import teetime.examples.throughput.TimestampObject;
-import teetime.examples.throughput.methodcall.stage.CollectorSink;
-import teetime.examples.throughput.methodcall.stage.NoopFilter;
-import teetime.examples.throughput.methodcall.stage.ObjectProducer;
-import teetime.examples.throughput.methodcall.stage.Pipeline;
-import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
-import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
-import teetime.framework.core.Analysis;
+import teetime.util.ConstructorClosure;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.methodcall.framework.core.Pipeline;
+import teetime.variant.methodcall.framework.core.RunnableStage;
+import teetime.variant.methodcall.framework.core.pipe.SingleElementPipe;
+import teetime.variant.methodcall.stage.CollectorSink;
+import teetime.variant.methodcall.stage.NoopFilter;
+import teetime.variant.methodcall.stage.ObjectProducer;
+import teetime.variant.methodcall.stage.StartTimestampFilter;
+import teetime.variant.methodcall.stage.StopTimestampFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis11Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment11/MethodCallThoughputTimestampAnalysis11Test.java
similarity index 92%
rename from src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis11Test.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment11/MethodCallThoughputTimestampAnalysis11Test.java
index 0191eb46..1f9d7099 100644
--- a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis11Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment11/MethodCallThoughputTimestampAnalysis11Test.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.methodcall.examples.experiment11;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -21,10 +21,10 @@ import java.util.List;
 import org.junit.Before;
 import org.junit.Test;
 
-import teetime.examples.throughput.methodcall.ConstructorClosure;
-import teetime.examples.throughput.methodcall.MethodCallThroughputAnalysis11;
+import teetime.util.ConstructorClosure;
 import teetime.util.StatisticsUtil;
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 import kieker.common.logging.LogFactory;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis11.java b/src/test/java/teetime/variant/methodcall/examples/experiment11/MethodCallThroughputAnalysis11.java
similarity index 85%
rename from src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis11.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment11/MethodCallThroughputAnalysis11.java
index ca5ab5d2..c544e75e 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis11.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment11/MethodCallThroughputAnalysis11.java
@@ -13,18 +13,21 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.examples.experiment11;
 
 import java.util.List;
 
-import teetime.examples.throughput.TimestampObject;
-import teetime.examples.throughput.methodcall.stage.CollectorSink;
-import teetime.examples.throughput.methodcall.stage.NoopFilter;
-import teetime.examples.throughput.methodcall.stage.ObjectProducer;
-import teetime.examples.throughput.methodcall.stage.Pipeline;
-import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
-import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
-import teetime.framework.core.Analysis;
+import teetime.util.ConstructorClosure;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.methodcall.framework.core.Pipeline;
+import teetime.variant.methodcall.framework.core.RunnableStage;
+import teetime.variant.methodcall.framework.core.pipe.UnorderedGrowablePipe;
+import teetime.variant.methodcall.stage.CollectorSink;
+import teetime.variant.methodcall.stage.NoopFilter;
+import teetime.variant.methodcall.stage.ObjectProducer;
+import teetime.variant.methodcall.stage.StartTimestampFilter;
+import teetime.variant.methodcall.stage.StopTimestampFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis12Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment12/MethodCallThoughputTimestampAnalysis12Test.java
similarity index 92%
rename from src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis12Test.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment12/MethodCallThoughputTimestampAnalysis12Test.java
index 81b7d6d8..2af8e476 100644
--- a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis12Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment12/MethodCallThoughputTimestampAnalysis12Test.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.methodcall.examples.experiment12;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -21,10 +21,10 @@ import java.util.List;
 import org.junit.Before;
 import org.junit.Test;
 
-import teetime.examples.throughput.methodcall.ConstructorClosure;
-import teetime.examples.throughput.methodcall.MethodCallThroughputAnalysis12;
+import teetime.util.ConstructorClosure;
 import teetime.util.StatisticsUtil;
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 import kieker.common.logging.LogFactory;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis12.java b/src/test/java/teetime/variant/methodcall/examples/experiment12/MethodCallThroughputAnalysis12.java
similarity index 84%
rename from src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis12.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment12/MethodCallThroughputAnalysis12.java
index 2bc90dd6..399ccc27 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis12.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment12/MethodCallThroughputAnalysis12.java
@@ -13,18 +13,19 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.examples.experiment12;
 
 import java.util.List;
 
-import teetime.examples.throughput.TimestampObject;
-import teetime.examples.throughput.methodcall.stage.CollectorSink;
-import teetime.examples.throughput.methodcall.stage.NoopFilter;
-import teetime.examples.throughput.methodcall.stage.ObjectProducer;
-import teetime.examples.throughput.methodcall.stage.Pipeline;
-import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
-import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
-import teetime.framework.core.Analysis;
+import teetime.util.ConstructorClosure;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.methodcall.framework.core.Pipeline;
+import teetime.variant.methodcall.stage.CollectorSink;
+import teetime.variant.methodcall.stage.NoopFilter;
+import teetime.variant.methodcall.stage.ObjectProducer;
+import teetime.variant.methodcall.stage.StartTimestampFilter;
+import teetime.variant.methodcall.stage.StopTimestampFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis13Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment13/MethodCallThoughputTimestampAnalysis13Test.java
similarity index 92%
rename from src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis13Test.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment13/MethodCallThoughputTimestampAnalysis13Test.java
index 03f694b4..ccc148c1 100644
--- a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis13Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment13/MethodCallThoughputTimestampAnalysis13Test.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.methodcall.examples.experiment13;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -21,10 +21,10 @@ import java.util.List;
 import org.junit.Before;
 import org.junit.Test;
 
-import teetime.examples.throughput.methodcall.ConstructorClosure;
-import teetime.examples.throughput.methodcall.MethodCallThroughputAnalysis13;
+import teetime.util.ConstructorClosure;
 import teetime.util.StatisticsUtil;
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 import kieker.common.logging.LogFactory;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis13.java b/src/test/java/teetime/variant/methodcall/examples/experiment13/MethodCallThroughputAnalysis13.java
similarity index 84%
rename from src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis13.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment13/MethodCallThroughputAnalysis13.java
index 81f72d7c..ba112036 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis13.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment13/MethodCallThroughputAnalysis13.java
@@ -13,21 +13,23 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.examples.experiment13;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
-import teetime.examples.throughput.TimestampObject;
-import teetime.examples.throughput.methodcall.stage.AbstractStage;
-import teetime.examples.throughput.methodcall.stage.CollectorSink;
-import teetime.examples.throughput.methodcall.stage.EndStage;
-import teetime.examples.throughput.methodcall.stage.NoopFilter;
-import teetime.examples.throughput.methodcall.stage.ObjectProducer;
-import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
-import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
-import teetime.framework.core.Analysis;
+import teetime.util.ConstructorClosure;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.methodcall.framework.core.AbstractStage;
+import teetime.variant.methodcall.framework.core.StageWithPort;
+import teetime.variant.methodcall.stage.CollectorSink;
+import teetime.variant.methodcall.stage.EndStage;
+import teetime.variant.methodcall.stage.NoopFilter;
+import teetime.variant.methodcall.stage.ObjectProducer;
+import teetime.variant.methodcall.stage.StartTimestampFilter;
+import teetime.variant.methodcall.stage.StopTimestampFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis14Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment14/MethodCallThoughputTimestampAnalysis14Test.java
similarity index 92%
rename from src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis14Test.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment14/MethodCallThoughputTimestampAnalysis14Test.java
index 70dfb915..59b6372e 100644
--- a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis14Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment14/MethodCallThoughputTimestampAnalysis14Test.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.methodcall.examples.experiment14;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -21,10 +21,10 @@ import java.util.List;
 import org.junit.Before;
 import org.junit.Test;
 
-import teetime.examples.throughput.methodcall.ConstructorClosure;
-import teetime.examples.throughput.methodcall.MethodCallThroughputAnalysis14;
+import teetime.util.ConstructorClosure;
 import teetime.util.StatisticsUtil;
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 import kieker.common.logging.LogFactory;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis14.java b/src/test/java/teetime/variant/methodcall/examples/experiment14/MethodCallThroughputAnalysis14.java
similarity index 83%
rename from src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis14.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment14/MethodCallThroughputAnalysis14.java
index 9eb9f521..bc08ec97 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis14.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment14/MethodCallThroughputAnalysis14.java
@@ -13,18 +13,21 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.examples.experiment14;
 
 import java.util.List;
 
-import teetime.examples.throughput.TimestampObject;
-import teetime.examples.throughput.methodcall.stage.CollectorSink;
-import teetime.examples.throughput.methodcall.stage.NoopFilter;
-import teetime.examples.throughput.methodcall.stage.ObjectProducer;
-import teetime.examples.throughput.methodcall.stage.Pipeline;
-import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
-import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
-import teetime.framework.core.Analysis;
+import teetime.util.ConstructorClosure;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.methodcall.framework.core.Pipeline;
+import teetime.variant.methodcall.framework.core.RunnableStage;
+import teetime.variant.methodcall.framework.core.pipe.SpScPipe;
+import teetime.variant.methodcall.stage.CollectorSink;
+import teetime.variant.methodcall.stage.NoopFilter;
+import teetime.variant.methodcall.stage.ObjectProducer;
+import teetime.variant.methodcall.stage.StartTimestampFilter;
+import teetime.variant.methodcall.stage.StopTimestampFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis15Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment15/MethodCallThoughputTimestampAnalysis15Test.java
similarity index 92%
rename from src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis15Test.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment15/MethodCallThoughputTimestampAnalysis15Test.java
index 3553ea92..1c72d395 100644
--- a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis15Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment15/MethodCallThoughputTimestampAnalysis15Test.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.methodcall.examples.experiment15;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -21,10 +21,10 @@ import java.util.List;
 import org.junit.Before;
 import org.junit.Test;
 
-import teetime.examples.throughput.methodcall.ConstructorClosure;
-import teetime.examples.throughput.methodcall.MethodCallThroughputAnalysis15;
+import teetime.util.ConstructorClosure;
 import teetime.util.StatisticsUtil;
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 import kieker.common.logging.LogFactory;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis15.java b/src/test/java/teetime/variant/methodcall/examples/experiment15/MethodCallThroughputAnalysis15.java
similarity index 82%
rename from src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis15.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment15/MethodCallThroughputAnalysis15.java
index c0bf7568..f3bc7006 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis15.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment15/MethodCallThroughputAnalysis15.java
@@ -13,21 +13,25 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.examples.experiment15;
 
 import java.util.List;
 
-import teetime.examples.throughput.TimestampObject;
-import teetime.examples.throughput.methodcall.stage.Clock;
-import teetime.examples.throughput.methodcall.stage.CollectorSink;
-import teetime.examples.throughput.methodcall.stage.Delay;
-import teetime.examples.throughput.methodcall.stage.EndStage;
-import teetime.examples.throughput.methodcall.stage.NoopFilter;
-import teetime.examples.throughput.methodcall.stage.ObjectProducer;
-import teetime.examples.throughput.methodcall.stage.Pipeline;
-import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
-import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
-import teetime.framework.core.Analysis;
+import teetime.util.ConstructorClosure;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.methodcall.framework.core.Pipeline;
+import teetime.variant.methodcall.framework.core.RunnableStage;
+import teetime.variant.methodcall.framework.core.pipe.SpScPipe;
+import teetime.variant.methodcall.framework.core.pipe.UnorderedGrowablePipe;
+import teetime.variant.methodcall.stage.Clock;
+import teetime.variant.methodcall.stage.CollectorSink;
+import teetime.variant.methodcall.stage.Delay;
+import teetime.variant.methodcall.stage.EndStage;
+import teetime.variant.methodcall.stage.NoopFilter;
+import teetime.variant.methodcall.stage.ObjectProducer;
+import teetime.variant.methodcall.stage.StartTimestampFilter;
+import teetime.variant.methodcall.stage.StopTimestampFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis16Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment16/MethodCallThoughputTimestampAnalysis16Test.java
similarity index 94%
rename from src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis16Test.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment16/MethodCallThoughputTimestampAnalysis16Test.java
index 9db9a7b3..942ce6c9 100644
--- a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis16Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment16/MethodCallThoughputTimestampAnalysis16Test.java
@@ -13,18 +13,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.methodcall.examples.experiment16;
 
 import java.util.List;
 
 import org.junit.Before;
 import org.junit.Test;
 
-import teetime.examples.throughput.methodcall.ConstructorClosure;
-import teetime.examples.throughput.methodcall.MethodCallThroughputAnalysis16;
+import teetime.util.ConstructorClosure;
 import teetime.util.ListUtil;
 import teetime.util.StatisticsUtil;
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 import kieker.common.logging.LogFactory;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis16.java b/src/test/java/teetime/variant/methodcall/examples/experiment16/MethodCallThroughputAnalysis16.java
similarity index 86%
rename from src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis16.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment16/MethodCallThroughputAnalysis16.java
index 1070521e..af0ac36b 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis16.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment16/MethodCallThroughputAnalysis16.java
@@ -13,22 +13,27 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.examples.experiment16;
 
 import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
 
-import teetime.examples.throughput.TimestampObject;
-import teetime.examples.throughput.methodcall.stage.CollectorSink;
-import teetime.examples.throughput.methodcall.stage.Distributor;
-import teetime.examples.throughput.methodcall.stage.NoopFilter;
-import teetime.examples.throughput.methodcall.stage.ObjectProducer;
-import teetime.examples.throughput.methodcall.stage.Pipeline;
-import teetime.examples.throughput.methodcall.stage.Relay;
-import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
-import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
-import teetime.framework.core.Analysis;
+import teetime.util.ConstructorClosure;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.methodcall.framework.core.Pipeline;
+import teetime.variant.methodcall.framework.core.RunnableStage;
+import teetime.variant.methodcall.framework.core.StageWithPort;
+import teetime.variant.methodcall.framework.core.pipe.SpScPipe;
+import teetime.variant.methodcall.framework.core.pipe.UnorderedGrowablePipe;
+import teetime.variant.methodcall.stage.CollectorSink;
+import teetime.variant.methodcall.stage.Distributor;
+import teetime.variant.methodcall.stage.NoopFilter;
+import teetime.variant.methodcall.stage.ObjectProducer;
+import teetime.variant.methodcall.stage.Relay;
+import teetime.variant.methodcall.stage.StartTimestampFilter;
+import teetime.variant.methodcall.stage.StopTimestampFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis17Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment17/MethodCallThoughputTimestampAnalysis17Test.java
similarity index 92%
rename from src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis17Test.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment17/MethodCallThoughputTimestampAnalysis17Test.java
index 1fbf5511..47703cab 100644
--- a/src/test/java/teetime/examples/throughput/MethodCallThoughputTimestampAnalysis17Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment17/MethodCallThoughputTimestampAnalysis17Test.java
@@ -13,18 +13,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput;
+package teetime.variant.methodcall.examples.experiment17;
 
 import java.util.List;
 
 import org.junit.Before;
 import org.junit.Test;
 
-import teetime.examples.throughput.methodcall.ConstructorClosure;
-import teetime.examples.throughput.methodcall.MethodCallThroughputAnalysis17;
+import teetime.util.ConstructorClosure;
 import teetime.util.ListUtil;
 import teetime.util.StatisticsUtil;
 import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 import kieker.common.logging.LogFactory;
 
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis17.java b/src/test/java/teetime/variant/methodcall/examples/experiment17/MethodCallThroughputAnalysis17.java
similarity index 86%
rename from src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis17.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment17/MethodCallThroughputAnalysis17.java
index 87f74b22..fb8c8504 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis17.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment17/MethodCallThroughputAnalysis17.java
@@ -13,24 +13,30 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.examples.experiment17;
 
 import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
 
-import teetime.examples.throughput.TimestampObject;
-import teetime.examples.throughput.methodcall.stage.CollectorSink;
-import teetime.examples.throughput.methodcall.stage.Distributor;
-import teetime.examples.throughput.methodcall.stage.EndStage;
-import teetime.examples.throughput.methodcall.stage.NoopFilter;
-import teetime.examples.throughput.methodcall.stage.ObjectProducer;
-import teetime.examples.throughput.methodcall.stage.Pipeline;
-import teetime.examples.throughput.methodcall.stage.Relay;
-import teetime.examples.throughput.methodcall.stage.Sink;
-import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
-import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
-import teetime.framework.core.Analysis;
+import teetime.util.ConstructorClosure;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.methodcall.framework.core.Pipeline;
+import teetime.variant.methodcall.framework.core.RunnableStage;
+import teetime.variant.methodcall.framework.core.StageWithPort;
+import teetime.variant.methodcall.framework.core.pipe.IPipe;
+import teetime.variant.methodcall.framework.core.pipe.SpScPipe;
+import teetime.variant.methodcall.framework.core.pipe.UnorderedGrowablePipe;
+import teetime.variant.methodcall.stage.CollectorSink;
+import teetime.variant.methodcall.stage.Distributor;
+import teetime.variant.methodcall.stage.EndStage;
+import teetime.variant.methodcall.stage.NoopFilter;
+import teetime.variant.methodcall.stage.ObjectProducer;
+import teetime.variant.methodcall.stage.Relay;
+import teetime.variant.methodcall.stage.Sink;
+import teetime.variant.methodcall.stage.StartTimestampFilter;
+import teetime.variant.methodcall.stage.StopTimestampFilter;
 
 /**
  * @author Christian Wulf
diff --git a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis18.java b/src/test/java/teetime/variant/methodcall/examples/experiment18/MethodCallThroughputAnalysis18.java
similarity index 85%
rename from src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis18.java
rename to src/test/java/teetime/variant/methodcall/examples/experiment18/MethodCallThroughputAnalysis18.java
index 2f03f2e4..a54abddc 100644
--- a/src/test/java/teetime/examples/throughput/methodcall/MethodCallThroughputAnalysis18.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment18/MethodCallThroughputAnalysis18.java
@@ -13,22 +13,27 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.throughput.methodcall;
+package teetime.variant.methodcall.examples.experiment18;
 
 import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
 
-import teetime.examples.throughput.TimestampObject;
-import teetime.examples.throughput.methodcall.stage.CollectorSink;
-import teetime.examples.throughput.methodcall.stage.Distributor;
-import teetime.examples.throughput.methodcall.stage.NoopFilter;
-import teetime.examples.throughput.methodcall.stage.ObjectProducer;
-import teetime.examples.throughput.methodcall.stage.Pipeline;
-import teetime.examples.throughput.methodcall.stage.Relay;
-import teetime.examples.throughput.methodcall.stage.StartTimestampFilter;
-import teetime.examples.throughput.methodcall.stage.StopTimestampFilter;
-import teetime.framework.core.Analysis;
+import teetime.util.ConstructorClosure;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import teetime.variant.explicitScheduling.framework.core.Analysis;
+import teetime.variant.methodcall.framework.core.Pipeline;
+import teetime.variant.methodcall.framework.core.RunnableStage;
+import teetime.variant.methodcall.framework.core.StageWithPort;
+import teetime.variant.methodcall.framework.core.pipe.SpScPipe;
+import teetime.variant.methodcall.framework.core.pipe.UnorderedGrowablePipe;
+import teetime.variant.methodcall.stage.CollectorSink;
+import teetime.variant.methodcall.stage.Distributor;
+import teetime.variant.methodcall.stage.NoopFilter;
+import teetime.variant.methodcall.stage.ObjectProducer;
+import teetime.variant.methodcall.stage.Relay;
+import teetime.variant.methodcall.stage.StartTimestampFilter;
+import teetime.variant.methodcall.stage.StopTimestampFilter;
 
 /**
  * @author Christian Wulf
-- 
GitLab