diff --git a/src/main/java/teetime/framework/Analysis.java b/src/main/java/teetime/framework/Analysis.java
index ec204b3bd9f4a73bd2431d59cec90df4d06dcc58..5319ef584a478c6514e807c6723b45a7e64d7aa5 100644
--- a/src/main/java/teetime/framework/Analysis.java
+++ b/src/main/java/teetime/framework/Analysis.java
@@ -11,6 +11,13 @@ import org.slf4j.LoggerFactory;
 
 import teetime.util.Pair;
 
+/**
+ * Represents an Analysis to which stages can be added and executed later.
+ * This needs a {@link AnalysisConfiguration},
+ * in which the adding and configuring of stages takes place.
+ * To start the analysis {@link #init()} and {@link #start()} need to be executed in this order.
+ * This class will automatically create threads and join them without any further commitment.
+ */
 public class Analysis implements UncaughtExceptionHandler {
 
 	private static final Logger LOGGER = LoggerFactory.getLogger(Analysis.class);
diff --git a/src/main/java/teetime/framework/AnalysisConfiguration.java b/src/main/java/teetime/framework/AnalysisConfiguration.java
index fa278856750a776e4af51987a96fc9bd612ee941..0fecb2513fe725944a0698fa5053c421ef8f922f 100644
--- a/src/main/java/teetime/framework/AnalysisConfiguration.java
+++ b/src/main/java/teetime/framework/AnalysisConfiguration.java
@@ -5,6 +5,10 @@ import java.util.List;
 
 import teetime.framework.pipe.PipeFactoryRegistry;
 
+/**
+ * Represents a configuration of connected stages, which is needed to run a analysis.
+ * Stages can be added by executing {@link #addThreadableStage(Stage)}.
+ */
 public class AnalysisConfiguration {
 
 	protected static final PipeFactoryRegistry PIPE_FACTORY_REGISTRY = PipeFactoryRegistry.INSTANCE;
diff --git a/src/main/java/teetime/framework/Stage.java b/src/main/java/teetime/framework/Stage.java
index d9dc3c6783eb572fa0acbb0574e5716ad3521a43..198d862af835f7b64f2aa477dbb2a19ad322225b 100644
--- a/src/main/java/teetime/framework/Stage.java
+++ b/src/main/java/teetime/framework/Stage.java
@@ -10,6 +10,10 @@ import org.slf4j.LoggerFactory;
 import teetime.framework.signal.ISignal;
 import teetime.framework.validation.InvalidPortConnection;
 
+/**
+ * Represents a minimal Stage, with some pre-defined methods.
+ * Implemented stages need to adapt all abstract methods with own implementations.
+ */
 public abstract class Stage { // NOPMD (should not start with "Abstract")
 
 	private static final ConcurrentMap<String, Integer> INSTANCES_COUNTER = new ConcurrentHashMap<String, Integer>();