diff --git a/src/main/java/beamline/sources/BeamlineAbstractSource.java b/src/main/java/beamline/sources/BeamlineAbstractSource.java
index 2e660c34861b5971c3274b6ead364a449b10b72c..2a8a858a481e7f156ba4f3811b4a698dba482b89 100644
--- a/src/main/java/beamline/sources/BeamlineAbstractSource.java
+++ b/src/main/java/beamline/sources/BeamlineAbstractSource.java
@@ -5,9 +5,14 @@ import org.apache.flink.streaming.api.functions.source.RichSourceFunction;
 import beamline.events.BEvent;
 
 /**
- * This interface is supposed to bind the type of {@link RichSourceFunction} to
- * {@link BEvent} and to provide minimal infrastructure to check if the sourece
- * is currently running.
+ * This class represents the general source to generate {@link BEvent}s. The
+ * goal of the class is to bind the type of the underlying
+ * {@link RichSourceFunction} to {@link BEvent} as well as provide basic
+ * management for running/not running.
+ * 
+ * <p>
+ * Since the source is a "rich" one, it means that it is possible to access the
+ * state from within all sources derived from this one.
  * 
  * @author Andrea Burattin
  */
diff --git a/src/main/java/beamline/sources/CSVLogSource.java b/src/main/java/beamline/sources/CSVLogSource.java
index 050045f0bf37551c0b963f4d4913c97174b3f4ef..a580b61672ed2cddf162e68fdf059dbf73307f42 100644
--- a/src/main/java/beamline/sources/CSVLogSource.java
+++ b/src/main/java/beamline/sources/CSVLogSource.java
@@ -20,8 +20,8 @@ import beamline.events.BEvent;
 import beamline.exceptions.SourceException;
 
 /**
- * This implementation of a {@link BeamlineAbstractSource} produces events
- * according to the events contained in a CSV file.
+ * This implementation of a {@link BeamlineAbstractSource} produces
+ * {@link BEvent} according to the rows contained in a CSV file.
  * 
  * @author Andrea Burattin
  */
diff --git a/src/main/java/beamline/sources/MQTTXesSource.java b/src/main/java/beamline/sources/MQTTXesSource.java
index d81fdb8dbaacf9c12c5da39d3b2f3a31699d4e04..bdad3234fdbf1a1728e54b9f6f3787978c2b61dd 100644
--- a/src/main/java/beamline/sources/MQTTXesSource.java
+++ b/src/main/java/beamline/sources/MQTTXesSource.java
@@ -22,8 +22,7 @@ import beamline.exceptions.SourceException;
  * <p>
  * Example of usage:
  * <pre>
- * XesSource source = new MQTTXesSource("tcp://broker.hivemq.com:1883", "topicBase", "processName");
- * source.prepare();
+ * MQTTXesSource source = new MQTTXesSource("tcp://broker.hivemq.com:1883", "topicBase", "processName");
  * </pre>
  * 
  * <p>
diff --git a/src/main/java/beamline/sources/StringTestSource.java b/src/main/java/beamline/sources/StringTestSource.java
index 65c317d4497bd54acaca306c00124ddc721719f7..9fec5dce2eee3ee4c8947adc11de2cff79905308 100644
--- a/src/main/java/beamline/sources/StringTestSource.java
+++ b/src/main/java/beamline/sources/StringTestSource.java
@@ -2,11 +2,31 @@ package beamline.sources;
 
 import beamline.events.BEvent;
 
+/**
+ * Source useful for designing new algorithm. It allows to specify sequences of
+ * events directly in the constructor.
+ * 
+ * <p>
+ * Example of usage:
+ * <pre>
+ * StringTestSource s = new StringTestSource("ABC", "ADCE");
+ * </pre>
+ * This is going to emit 7 events as part of 2 traces. Each trace is a string
+ * provided in the constructor and each event is one character of the string.
+ * 
+ * @author Andrea Burattin
+ */
 public class StringTestSource extends BeamlineAbstractSource {
 
 	private static final long serialVersionUID = 7657971352128040279L;
 	private String[] traces;
 	
+	/**
+	 * Constructs the source by providing the strings representing the events to
+	 * emit
+	 * 
+	 * @param traces one string for each trace, where each character is an event
+	 */
 	public StringTestSource(String...traces) {
 		this.traces = traces;
 	}