From 0074542168bd4bc4935b99bbbb1e68dac467d984 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 e663f58..ef49b2c 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 9b8a796..13c08fc 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 483957a..83924f8 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 149c93f..882ffbd 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 e86bf1e..31598c3 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 61f9d20..e428980 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 f3b61b0..0daf1ad 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 eac2426..db723d7 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 26eda80..0000000
--- 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 7cb232b..96e17fb 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 9577fef..4fefbf4 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 5690d1c..e1dd1ff 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 26d7ecc..5ebe8af 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 1760d8a..feba3ab 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 0883993..33e8f9c 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 5c99f80..54f422b 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 4e9b54a..8ac5dfe 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 e686457..e77ac45 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 cee84c0..4e91a73 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 360629b..670aca5 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 65dfa7f..796ba92 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 30faf7b..ff70703 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 9aa9379..6e875bd 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 29ce10a..c54039f 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 94ed60c..bd24e17 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 7f2d41d..8ae9a9e 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 fcffbda..587d299 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 c05668c..8251942 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 c798ddb..cfbb5e8 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 ee3073b..d0d1fc1 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 40e065d..b3a43f3 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 8eaec85..2a14fd8 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 a9df41e..a8b48e2 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 92f1c26..34d4619 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 dd035cc..1601459 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 e45b3ed..5686013 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 cd38a19..378b693 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 a042054..adc1563 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 916a898..27b78d5 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 b40b091..0693000 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 214e014..262e23e 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 4bcf752..834e3b2 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 46f5e78..9fb4c02 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 da54823..42719a2 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 113befe..262d124 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 5a6e40f..3935b16 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 fda9e08..ade2e16 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 99c0374..965793c 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 d463e07..254d262 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 3d8b8c0..c067182 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 a4f9534..a14ba0c 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 6f06d7a..e6eb0bc 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 21372d7..0b0d86b 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 3f9d501..0e6432e 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 b7783c3..23e66be 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 27c22eb..3c1ef86 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 4eaab24..9e33b6b 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 77985e8..75e3ca4 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 5d7aba4..bcadf66 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 021ab56..2a61aff 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 e3c0e42..946b2ec 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 7848fa0..5526b9b 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 0000000..37b8f52
--- /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 db71c1a..becf818 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 667d639..fdc8241 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 6412ae9..04b0d51 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 9b70846..9dd69e3 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 46556e9..f425d2b 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 2a18cc0..820fb6d 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 b782846..1a51784 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 9cce059..3ed9a10 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 819de27..5db9163 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 d8463db..2fb8acd 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 723f8cd..3b5e9d7 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 b2a135c..2ab57eb 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 018227a..4cd0b27 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 329c3e7..6e058aa 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 1fdb4f1..aca2e55 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 49fd0fc..a718972 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 de1b31b..5aebff5 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 327e5e1..447ca37 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 fc65ca6..de80acd 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 8482233..6b3b109 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 304579a..2624e5a 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 014de3e..d6f7910 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 ab58b22..22fd17c 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 0c39313..710ee67 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 495befe..28e6783 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 e1687a0..92b3228 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 928f99f..c6e0b8e 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 5b0a8ea..2fceaae 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 cb35923..fcf4fce 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 028e4f8..75ad77a 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 390679b..000afab 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 0a26fec..de1effc 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 db8c674..bf61492 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 ab715ee..a3cea02 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 dc9e397..5f8ebdf 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 a249ede..6daf703 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 14847fa..60809bd 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 d74fa6e..7e78198 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 114a6dc..08d479c 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 538ad01..a47068a 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 ad773d9..60dc9bc 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 09e9a73..d2a2193 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 e65c258..142be11 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 15e300e..9a8f165 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 85c350f..e789679 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 bbbd791..fecda93 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 cba7613..ea1a5bf 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 04c7ef6..db67b01 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 e38b30f..4f086a9 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 ba77bf9..81f0fb3 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 e0599e8..e066fe2 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 96cfe3d..daf3526 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 c7f3bb8..6ce007d 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 21b0957..fbb7b81 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 8913146..b7f6f46 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 3e0528e..828591d 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 fcb6ed6..06d6a2b 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 b59f5bc..f2b6096 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 2c29775..3be61c1 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 42ad92d..53d715a 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 e1d369b..48f6f8c 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 9a672bf..370bdc2 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 0419220..426de75 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 4badc3a..bb0c214 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 ee34574..6d6f4e5 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 82c356f..eac8f68 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 22542a5..0121ad5 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 665fcf4..5d3b662 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 35c686b..147aec0 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 cc2d9ac..016463d 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 b352004..fe1fad4 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 2bf7159..dea77fb 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 0e7614b..947f68b 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 e9db16c..ea72ab4 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 02e69fd..f74b2bf 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 837d67e..b7612df 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 14a5ba4..2656737 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 b87d048..b032b0e 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 57107f5..61e9c6b 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 a1d926a..95ac0b0 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 d695354..9246317 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 e0a02f4..390443a 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 d382daa..3551eb1 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 7f5aea2..7989ba0 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 645cd00..124d1c7 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 0e6081b..e710e6f 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 44409dd..c7f8053 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 b545cf3..2856c16 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 87b94df..fe5359a 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 f6d8fe3..7479e20 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 481d127..4bc890e 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 5995c45..f510320 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 18e1cc9..ea56a54 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 c5a501d..f3c1262 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 4977757..0c5a9f3 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 98413fb..ace51b0 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 9db2918..efd8cbd 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 c067787..f1a3520 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 9e68db8..89ff7c7 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 da5b2c0..3619f24 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 dd6691c..07ee037 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 e324375..8e5aa3e 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 483733e..0000000
--- 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 3b7eb35..0de57c6 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 ef0e72c..cadace4 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 51cd195..96f0aac 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 47f9be4..362f342 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 b893346..e53851d 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 4556411..52a5cb2 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 55f565c..1155da2 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 ee6947e..0364bc9 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 e987678..8611d46 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 68f6077..c6b509c 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 e543ad2..35983c0 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 106e5b0..bc13f68 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 4c59946..503eade 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 72c788c..d1e00ef 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 4d3a33b..04faa04 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 bb54421..729150e 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 8b5ac8a..9b11230 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 902155f..2dac38f 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 30ba261..7045b34 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 5f781ad..a09a084 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 075bb78..2ace0eb 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 5380277..0c1e3e5 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 cd52067..35282b2 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 0191eb4..1f9d709 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 ca5ab5d..c544e75 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 81b7d6d..2af8e47 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 2bc90dd..399ccc2 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 03f694b..ccc148c 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 81f72d7..ba11203 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 70dfb91..59b6372 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 9eb9f52..bc08ec9 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 3553ea9..1c72d39 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 c0bf756..f3bc700 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 9db9a7b..942ce6c 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 1070521..af0ac36 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 1fbf551..47703ca 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 87f74b2..fb8c850 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 2f03f2e..a54abdd 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