Added some of the missing JavaDoc comments.
diff --git a/src/main/java/org/yaml/snakeyaml/composer/Composer.java b/src/main/java/org/yaml/snakeyaml/composer/Composer.java
index 528133e..b6db4b7 100644
--- a/src/main/java/org/yaml/snakeyaml/composer/Composer.java
+++ b/src/main/java/org/yaml/snakeyaml/composer/Composer.java
@@ -41,7 +41,11 @@
 import org.yaml.snakeyaml.resolver.Resolver;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Creates a node graph from parser events.
+ * <p>
+ * Corresponds to the 'Compose' step as described in chapter 3.1 of the 
+ * <a href="http://www.yaml.org/spec/1.2/spec.html">YAML Specification</a>.
+ * </p>
  */
 public class Composer {
     private final Parser parser;
@@ -56,6 +60,10 @@
         this.recursiveNodes = new HashSet<Node>();
     }
 
+    /**
+     * Checks if further documents are available.
+     * @return <code>true</code> if there is at least one more document.
+     */
     public boolean checkNode() {
         // Drop the STREAM-START event.
         if (parser.checkEvent(StreamStartEvent.class)) {
@@ -65,6 +73,11 @@
         return !parser.checkEvent(StreamEndEvent.class);
     }
 
+    /**
+     * Reads and composes the next document.
+     * @return The root node of the document or <code>null</code> if no
+     * more documents are available.
+     */
     public Node getNode() {
         // Get the root node of the next document.
         if (!parser.checkEvent(StreamEndEvent.class)) {
@@ -74,6 +87,15 @@
         }
     }
 
+    /**
+     * Reads a document from a source that contains only one
+     * document.
+     * <p>
+     * If the stream contains more than one document an exception is thrown.
+     * </p>
+     * @return The root node of the document or <code>null</code> if no
+     * document is available.
+     */
     public Node getSingleNode() {
         // Drop the STREAM-START event.
         parser.getEvent();
diff --git a/src/main/java/org/yaml/snakeyaml/events/AliasEvent.java b/src/main/java/org/yaml/snakeyaml/events/AliasEvent.java
index 33458a1..6e43ef9 100644
--- a/src/main/java/org/yaml/snakeyaml/events/AliasEvent.java
+++ b/src/main/java/org/yaml/snakeyaml/events/AliasEvent.java
@@ -18,7 +18,7 @@
 import org.yaml.snakeyaml.error.Mark;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Marks the inclusion of a previously anchored node.
  */
 public final class AliasEvent extends NodeEvent {
     public AliasEvent(String anchor, Mark startMark, Mark endMark) {
diff --git a/src/main/java/org/yaml/snakeyaml/events/CollectionEndEvent.java b/src/main/java/org/yaml/snakeyaml/events/CollectionEndEvent.java
index 690c318..83f40d5 100644
--- a/src/main/java/org/yaml/snakeyaml/events/CollectionEndEvent.java
+++ b/src/main/java/org/yaml/snakeyaml/events/CollectionEndEvent.java
@@ -18,7 +18,7 @@
 import org.yaml.snakeyaml.error.Mark;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Base class for the end events of the collection nodes.
  */
 public abstract class CollectionEndEvent extends Event {
 
diff --git a/src/main/java/org/yaml/snakeyaml/events/CollectionStartEvent.java b/src/main/java/org/yaml/snakeyaml/events/CollectionStartEvent.java
index 6e616d2..3ad1696 100644
--- a/src/main/java/org/yaml/snakeyaml/events/CollectionStartEvent.java
+++ b/src/main/java/org/yaml/snakeyaml/events/CollectionStartEvent.java
@@ -18,7 +18,7 @@
 import org.yaml.snakeyaml.error.Mark;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Base class for the start events of the collection nodes.
  */
 public abstract class CollectionStartEvent extends NodeEvent {
     private final String tag;
@@ -36,14 +36,27 @@
         this.flowStyle = flowStyle;
     }
 
+    /**
+     * Tag of this collection.
+     * @return The tag of this collection, or <code>null</code> if no explicit tag is available.
+     */
     public String getTag() {
         return this.tag;
     }
 
+    /**
+     * <code>true</code> if the tag can be omitted while this collection is emitted.
+     * @return True if the tag can be omitted while this collection is emitted.
+     */
     public boolean getImplicit() {
         return this.implicit;
     }
 
+    /**
+     * <code>true</code> if this collection is in flow style, <code>false</code>
+     * for block style.
+     * @return If this collection is in flow style.
+     */
     public Boolean getFlowStyle() {
         return this.flowStyle;
     }
diff --git a/src/main/java/org/yaml/snakeyaml/events/DocumentEndEvent.java b/src/main/java/org/yaml/snakeyaml/events/DocumentEndEvent.java
index c02232f..8534eb6 100644
--- a/src/main/java/org/yaml/snakeyaml/events/DocumentEndEvent.java
+++ b/src/main/java/org/yaml/snakeyaml/events/DocumentEndEvent.java
@@ -18,7 +18,10 @@
 import org.yaml.snakeyaml.error.Mark;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Marks the end of a document.
+ * <p>
+ * This event follows the document's content.
+ * </p>
  */
 public final class DocumentEndEvent extends Event {
     private final boolean explicit;
diff --git a/src/main/java/org/yaml/snakeyaml/events/DocumentStartEvent.java b/src/main/java/org/yaml/snakeyaml/events/DocumentStartEvent.java
index 3bccfa0..b9488f6 100644
--- a/src/main/java/org/yaml/snakeyaml/events/DocumentStartEvent.java
+++ b/src/main/java/org/yaml/snakeyaml/events/DocumentStartEvent.java
@@ -20,7 +20,10 @@
 import org.yaml.snakeyaml.error.Mark;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Marks the beginning of a document.
+ * <p>
+ * This event followed by the document's content and a {@link DocumentEndEvent}.
+ * </p>
  */
 public final class DocumentStartEvent extends Event {
     private final boolean explicit;
@@ -39,10 +42,22 @@
         return explicit;
     }
 
+    /**
+     * YAML version the document conforms to. 
+     * @return <code>null</code>if the document has no explicit 
+     * <code>%YAML</code> directive.
+     * Otherwise an array with two components, the major and minor part of
+     * the version (in this order).
+     */
     public Integer[] getVersion() {
         return version;
     }
 
+    /**
+     * Tag shorthands as defined by the <code>%TAG</code> directive.
+     * @return Mapping of 'handles' to 'prefixes' (the handles
+     * include the '!' characters).
+     */
     public Map<String, String> getTags() {
         return tags;
     }
diff --git a/src/main/java/org/yaml/snakeyaml/events/Event.java b/src/main/java/org/yaml/snakeyaml/events/Event.java
index 055b796..4339308 100644
--- a/src/main/java/org/yaml/snakeyaml/events/Event.java
+++ b/src/main/java/org/yaml/snakeyaml/events/Event.java
@@ -18,7 +18,8 @@
 import org.yaml.snakeyaml.error.Mark;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Basic unit of output from a {@link org.yaml.snakeyaml.parser.Parser}
+ * or input of a {@link org.yaml.snakeyaml.emitter.Emitter}.
  */
 public abstract class Event {
     private final Mark startMark;
@@ -47,6 +48,7 @@
     protected String getArguments() {
         return "";
     }
+    
 
     /*
      * for tests only
diff --git a/src/main/java/org/yaml/snakeyaml/events/MappingEndEvent.java b/src/main/java/org/yaml/snakeyaml/events/MappingEndEvent.java
index a797089..134ce6f 100644
--- a/src/main/java/org/yaml/snakeyaml/events/MappingEndEvent.java
+++ b/src/main/java/org/yaml/snakeyaml/events/MappingEndEvent.java
@@ -18,7 +18,9 @@
 import org.yaml.snakeyaml.error.Mark;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Marks the end of a mapping node.
+ * 
+ * @see MappingStartEvent
  */
 public final class MappingEndEvent extends CollectionEndEvent {
 
diff --git a/src/main/java/org/yaml/snakeyaml/events/MappingStartEvent.java b/src/main/java/org/yaml/snakeyaml/events/MappingStartEvent.java
index 469ea52..68b02fa 100644
--- a/src/main/java/org/yaml/snakeyaml/events/MappingStartEvent.java
+++ b/src/main/java/org/yaml/snakeyaml/events/MappingStartEvent.java
@@ -18,7 +18,20 @@
 import org.yaml.snakeyaml.error.Mark;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Marks the beginning of a mapping node.
+ * <p>
+ * This event is followed by a number of key value pairs.
+ * <br>
+ * The pairs are not in any particular order. However, the value
+ * always directly follows the corresponding key. 
+ * <br>
+ * After the key value pairs follows a {@link MappingEndEvent}.
+ * </p>
+ * <p>
+ * There must be an even number of node events between the start
+ * and end event.
+ * </p>
+ * @see MappingEndEvent
  */
 public final class MappingStartEvent extends CollectionStartEvent {
     public MappingStartEvent(String anchor, String tag, boolean implicit, Mark startMark,
diff --git a/src/main/java/org/yaml/snakeyaml/events/NodeEvent.java b/src/main/java/org/yaml/snakeyaml/events/NodeEvent.java
index 3cc1638..e7ec518 100644
--- a/src/main/java/org/yaml/snakeyaml/events/NodeEvent.java
+++ b/src/main/java/org/yaml/snakeyaml/events/NodeEvent.java
@@ -18,7 +18,8 @@
 import org.yaml.snakeyaml.error.Mark;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Base class for all events that mark the beginning
+ * of a node.
  */
 public abstract class NodeEvent extends Event {
 
@@ -29,6 +30,14 @@
         this.anchor = anchor;
     }
 
+    /**
+     * Node anchor by which this node might later be referenced
+     * by a {@link AliasEvent}.
+     * <p>
+     * Note that {@link AliasEvent}s are by it self <code>NodeEvent</code>s
+     * and use this property to indicate the referenced anchor.
+     * @return Anchor of this node or <code>null</code> if no anchor is defined.
+     */
     public String getAnchor() {
         return this.anchor;
     }
diff --git a/src/main/java/org/yaml/snakeyaml/events/ScalarEvent.java b/src/main/java/org/yaml/snakeyaml/events/ScalarEvent.java
index 9b45136..9311440 100644
--- a/src/main/java/org/yaml/snakeyaml/events/ScalarEvent.java
+++ b/src/main/java/org/yaml/snakeyaml/events/ScalarEvent.java
@@ -18,7 +18,7 @@
 import org.yaml.snakeyaml.error.Mark;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Marks a scalar value.
  */
 public final class ScalarEvent extends NodeEvent {
     private final String tag;
@@ -40,14 +40,36 @@
         this.style = style;
     }
 
+    /**
+     * Tag of this scalar.
+     * @return The tag of this scalar, or <code>null</code> if no explicit tag is available.
+     */
     public String getTag() {
         return this.tag;
     }
 
+    /**
+     * Style of the scalar.
+     * <dl>
+     *  <dt>''</dt><dd>Flow Style - Plain</dd>
+     *  <dt>'\''</dt><dd>Flow Style - Single-Quoted</dd>
+     *  <dt>'"'</dt><dd>Flow Style - Double-Quoted</dd>
+     *  <dt>'|'</dt><dd>Block Style - Literal</dd>
+     *  <dt>'>'</dt><dd>Block Style - Folded</dd>
+     * </dl>
+     * @return Style of the scalar.
+     */
     public Character getStyle() {
         return this.style;
     }
 
+    /**
+     * String representation of the value.
+     * <p>
+     * Without quotes and escaping.
+     * </p>
+     * @return Value as Unicode string.
+     */
     public String getValue() {
         return this.value;
     }
@@ -60,5 +82,4 @@
     protected String getArguments() {
         return super.getArguments() + ", tag=" + tag + ", " + implicit + ", value=" + value;
     }
-
 }
diff --git a/src/main/java/org/yaml/snakeyaml/events/SequenceEndEvent.java b/src/main/java/org/yaml/snakeyaml/events/SequenceEndEvent.java
index e474bf6..8e10809 100644
--- a/src/main/java/org/yaml/snakeyaml/events/SequenceEndEvent.java
+++ b/src/main/java/org/yaml/snakeyaml/events/SequenceEndEvent.java
@@ -18,7 +18,9 @@
 import org.yaml.snakeyaml.error.Mark;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Marks the end of a sequence.
+ * 
+ * @see SequenceStartEvent
  */
 public final class SequenceEndEvent extends CollectionEndEvent {
 
diff --git a/src/main/java/org/yaml/snakeyaml/events/SequenceStartEvent.java b/src/main/java/org/yaml/snakeyaml/events/SequenceStartEvent.java
index e4eee23..5521964 100644
--- a/src/main/java/org/yaml/snakeyaml/events/SequenceStartEvent.java
+++ b/src/main/java/org/yaml/snakeyaml/events/SequenceStartEvent.java
@@ -18,7 +18,12 @@
 import org.yaml.snakeyaml.error.Mark;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Marks the beginning of a sequence node.
+ * <p>
+ * This event is followed by the elements contained in the sequence, and
+ * a {@link SequenceEndEvent}.
+ * </p>
+ * @see SequenceEndEvent
  */
 public final class SequenceStartEvent extends CollectionStartEvent {
     public SequenceStartEvent(String anchor, String tag, boolean implicit, Mark startMark,
diff --git a/src/main/java/org/yaml/snakeyaml/events/StreamEndEvent.java b/src/main/java/org/yaml/snakeyaml/events/StreamEndEvent.java
index 7646f4b..eed1bf6 100644
--- a/src/main/java/org/yaml/snakeyaml/events/StreamEndEvent.java
+++ b/src/main/java/org/yaml/snakeyaml/events/StreamEndEvent.java
@@ -18,7 +18,15 @@
 import org.yaml.snakeyaml.error.Mark;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Marks the end of a stream that might have contained multiple documents.
+ * <p>
+ * This event is the last event that a parser emits. Together
+ * with {@link StreamStartEvent} (which is the first event a parser emits)
+ * they mark the beginning and the end of a stream of documents.
+ * </p>
+ * <p>
+ * See {@link Event} for an exemplary output.
+ * </p>
  */
 public final class StreamEndEvent extends Event {
     public StreamEndEvent(Mark startMark, Mark endMark) {
diff --git a/src/main/java/org/yaml/snakeyaml/events/StreamStartEvent.java b/src/main/java/org/yaml/snakeyaml/events/StreamStartEvent.java
index 6009920..5bdbd4f 100644
--- a/src/main/java/org/yaml/snakeyaml/events/StreamStartEvent.java
+++ b/src/main/java/org/yaml/snakeyaml/events/StreamStartEvent.java
@@ -18,7 +18,15 @@
 import org.yaml.snakeyaml.error.Mark;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Marks the start of a stream that might contain multiple documents.
+ * <p>
+ * This event is the first event that a parser emits. Together
+ * with {@link StreamEndEvent} (which is the last event a parser emits)
+ * they mark the beginning and the end of a stream of documents.
+ * </p>
+ * <p>
+ * See {@link Event} for an exemplary output.
+ * </p>
  */
 public final class StreamStartEvent extends Event {
 
diff --git a/src/main/java/org/yaml/snakeyaml/nodes/CollectionNode.java b/src/main/java/org/yaml/snakeyaml/nodes/CollectionNode.java
index 18f4663..9df2161 100644
--- a/src/main/java/org/yaml/snakeyaml/nodes/CollectionNode.java
+++ b/src/main/java/org/yaml/snakeyaml/nodes/CollectionNode.java
@@ -18,7 +18,8 @@
 import org.yaml.snakeyaml.error.Mark;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Base class for the two collection types {@link MappingNode mapping} 
+ * and {@link CollectionNode collection}.
  */
 public abstract class CollectionNode extends Node {
     private Boolean flowStyle;
@@ -28,6 +29,11 @@
         this.flowStyle = flowStyle;
     }
 
+
+    /**
+     * Serialization style of this collection.
+     * @return <code>true</code> for flow style, <code>false</code> for block style.
+     */
     public Boolean getFlowStyle() {
         return flowStyle;
     }
diff --git a/src/main/java/org/yaml/snakeyaml/nodes/MappingNode.java b/src/main/java/org/yaml/snakeyaml/nodes/MappingNode.java
index d87e410..5fb533b 100644
--- a/src/main/java/org/yaml/snakeyaml/nodes/MappingNode.java
+++ b/src/main/java/org/yaml/snakeyaml/nodes/MappingNode.java
@@ -20,7 +20,10 @@
 import org.yaml.snakeyaml.error.Mark;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Represents a map.
+ * <p>
+ * A map is a collection of unsorted key-value pairs.
+ * </p>
  */
 public class MappingNode extends CollectionNode {
     private Class<? extends Object> keyType;
@@ -48,6 +51,10 @@
         return NodeId.mapping;
     }
 
+    /**
+     * Returns the entries of this map.
+     * @return List of entries.
+     */
     public List<NodeTuple> getValue() {
         for (NodeTuple nodes : value) {
             nodes.getKeyNode().setType(keyType);
diff --git a/src/main/java/org/yaml/snakeyaml/nodes/Node.java b/src/main/java/org/yaml/snakeyaml/nodes/Node.java
index b6f0aca..5792540 100644
--- a/src/main/java/org/yaml/snakeyaml/nodes/Node.java
+++ b/src/main/java/org/yaml/snakeyaml/nodes/Node.java
@@ -18,7 +18,17 @@
 import org.yaml.snakeyaml.error.Mark;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Base class for all nodes.
+ * <p>
+ * The nodes form the node-graph described in the 
+ * <a href="http://www.yaml.org/spec/1.2/spec.html">YAML Specification</a>.
+ * </p>
+ * <p>
+ * While loading, the node graph is usually created by the 
+ * {@link org.yaml.snakeyaml.composer.Composer},
+ * and later transformed into application specific Java classes by the
+ * classes from the {@link org.yaml.snakeyaml.constructor} package.
+ * </p>
  */
 public abstract class Node {
     private String tag;
@@ -42,6 +52,13 @@
         this.useClassConstructor = null;
     }
 
+    /**
+     * Tag of this node.
+     * <p>
+     * Every node has a tag assigned. The tag
+     * is either local or global.
+     * @return Tag of this node.
+     */
     public String getTag() {
         return this.tag;
     }
@@ -89,6 +106,22 @@
         this.twoStepsConstruction = twoStepsConstruction;
     }
 
+    /**
+     * Indicates if this node must be constructed in two steps.
+     * <p>
+     * Two-step construction is required whenever a node is
+     * a child (direct or indirect) of it self. That is,
+     * if a recursive structure is build using anchors and aliases.
+     * </p>
+     * <p>
+     * Set by {@link org.yaml.snakeyaml.composer.Composer}, 
+     * used during the construction process.
+     * </p>
+     * <p>
+     * Only relevant during loading.
+     * </p>
+     * @return <code>true</code> if the node is self referenced.
+     */
     public boolean isTwoStepsConstruction() {
         return twoStepsConstruction;
     }
@@ -113,6 +146,10 @@
         this.useClassConstructor = useClassConstructor;
     }
 
+    /**
+     * Indicates if the tag was added by {@link org.yaml.snakeyaml.resolver.Resolver}.
+     * @return <code>true</code> if the tag of this node was resolved</code>
+     */
     public boolean isResolved() {
         return resolved;
     }
diff --git a/src/main/java/org/yaml/snakeyaml/nodes/NodeId.java b/src/main/java/org/yaml/snakeyaml/nodes/NodeId.java
index cde1517..846605d 100644
--- a/src/main/java/org/yaml/snakeyaml/nodes/NodeId.java
+++ b/src/main/java/org/yaml/snakeyaml/nodes/NodeId.java
@@ -15,6 +15,9 @@
  */

 package org.yaml.snakeyaml.nodes;

 

+/**

+ * Enum for the three basic YAML types: scalar, sequence and mapping.

+ */

 public enum NodeId {

     scalar, sequence, mapping;

 }

diff --git a/src/main/java/org/yaml/snakeyaml/nodes/NodeTuple.java b/src/main/java/org/yaml/snakeyaml/nodes/NodeTuple.java
index f0cd54d..32be6cd 100644
--- a/src/main/java/org/yaml/snakeyaml/nodes/NodeTuple.java
+++ b/src/main/java/org/yaml/snakeyaml/nodes/NodeTuple.java
@@ -15,6 +15,9 @@
  */
 package org.yaml.snakeyaml.nodes;
 
+/**
+ * Stores one key value pair used in a map.
+ */
 public class NodeTuple {
 
     private final Node keyNode;
@@ -28,10 +31,17 @@
         this.valueNode = valueNode;
     }
 
+    /**
+     * Key node.
+     */
     public Node getKeyNode() {
         return keyNode;
     }
 
+    /**
+     * Value node.
+     * @return value
+     */
     public Node getValueNode() {
         return valueNode;
     }
diff --git a/src/main/java/org/yaml/snakeyaml/nodes/ScalarNode.java b/src/main/java/org/yaml/snakeyaml/nodes/ScalarNode.java
index 71159eb..3ccc7dd 100644
--- a/src/main/java/org/yaml/snakeyaml/nodes/ScalarNode.java
+++ b/src/main/java/org/yaml/snakeyaml/nodes/ScalarNode.java
@@ -18,7 +18,10 @@
 import org.yaml.snakeyaml.error.Mark;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Represents a scalar node.
+ * <p>
+ * Scalar nodes form the leaves in the node graph.
+ * </p>
  */
 public class ScalarNode extends Node {
     private Character style;
@@ -39,6 +42,11 @@
         this.resolved = resolved;
     }
 
+    /**
+     * Serialized representation of this node.
+     * @see org.yaml.snakeyaml.events.ScalarEvent
+     * @return
+     */
     public Character getStyle() {
         return style;
     }
@@ -48,6 +56,10 @@
         return NodeId.scalar;
     }
 
+    /**
+     * Value of this scalar.
+     * @return Scalar's value.
+     */
     public String getValue() {
         return value;
     }
diff --git a/src/main/java/org/yaml/snakeyaml/nodes/SequenceNode.java b/src/main/java/org/yaml/snakeyaml/nodes/SequenceNode.java
index 3cec975..d78af98 100644
--- a/src/main/java/org/yaml/snakeyaml/nodes/SequenceNode.java
+++ b/src/main/java/org/yaml/snakeyaml/nodes/SequenceNode.java
@@ -20,7 +20,10 @@
 import org.yaml.snakeyaml.error.Mark;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Represents a sequence.
+ * <p>
+ * A sequence is a ordered collection of nodes.
+ * </p>
  */
 public class SequenceNode extends CollectionNode {
     private Class<? extends Object> listType;
@@ -46,13 +49,17 @@
         return NodeId.sequence;
     }
 
+    /**
+     * Returns the elements in this sequence.
+     * @return Nodes (sorted).
+     */
     public List<Node> getValue() {
         for (Node node : value) {
             node.setType(listType);
         }
         return value;
     }
-
+    
     public void setListType(Class<? extends Object> listType) {
         this.listType = listType;
     }
diff --git a/src/main/java/org/yaml/snakeyaml/parser/Parser.java b/src/main/java/org/yaml/snakeyaml/parser/Parser.java
index 585cc2c..0c935e6 100644
--- a/src/main/java/org/yaml/snakeyaml/parser/Parser.java
+++ b/src/main/java/org/yaml/snakeyaml/parser/Parser.java
@@ -20,14 +20,53 @@
 import org.yaml.snakeyaml.events.Event;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * This interface represents an input stream of {@link Event Events}.
+ * <p>
+ * The parser and the scanner form together the 'Parse' step in
+ * the loading process (see chapter 3.1 of the 
+ * <a href="http://www.yaml.org/spec/1.2/spec.html">YAML Specification</a>).
+ * </p>
+ * 
+ * @see org.yaml.snakeyaml.events.Event
  */
 public interface Parser {
+	
+    /**
+     * Check if the next event is one of the given types.
+	 *
+     * @param choices List of event types.
+     * @return <code>true</code>  if the next event can be assigned to a 
+     * variable of at least one of the given types. Returns <code>false</code>
+     * if no more events are available.
+     * @throws ParserException Thrown in case of malformed input.
+     */
     public boolean checkEvent(List<Class<? extends Event>> choices);
 
+    /**
+     * Check if the next event is assignable to the given type.
+     * <p>
+     * This is a convenience method to avoid <code>List</code> creation if
+     * calling {@link #checkEvent(List)} for
+     * a single type.
+     * </p>
+     * @param choice Event type.
+     * @return True if the next event is an instance of <code>type</code>.
+     * False if no more events are available.
+     * @throws ParserException Thrown in case of malformed input.
+     */
     public boolean checkEvent(Class<? extends Event> choice);
 
+    /**
+     * Return the next event, but do not delete it from the stream.
+     * @return The event that will be returned on the next call to {@link #getEvent}
+     * @throws ParserException Thrown in case of malformed input.
+     */
     public Event peekEvent();
 
+    /**
+     * Returns the next event.
+     * <p>The event will be removed from the stream.</p>
+     * @throws ParserException Thrown in case of malformed input.
+     */
     public Event getEvent();
 }
diff --git a/src/main/java/org/yaml/snakeyaml/parser/ParserException.java b/src/main/java/org/yaml/snakeyaml/parser/ParserException.java
index 816a747..24deba5 100644
--- a/src/main/java/org/yaml/snakeyaml/parser/ParserException.java
+++ b/src/main/java/org/yaml/snakeyaml/parser/ParserException.java
@@ -19,11 +19,22 @@
 import org.yaml.snakeyaml.error.MarkedYAMLException;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Exception thrown by the {@link Parser} implementations in case of
+ * malformed input.
  */
 public class ParserException extends MarkedYAMLException {
     private static final long serialVersionUID = -2349253802798398038L;
 
+    /**
+     * Constructs an instance.
+     * @param context	Part of the input document in which vicinity 
+     *    the problem occurred.
+     * @param contextMark	Position of the <code>context</code> 
+     *    within the document.
+     * @param problem	Part of the input document that caused the problem.
+     * @param problemMark Position of the <code>problem</code>.
+     *    within the document.
+     */
     public ParserException(String context, Mark contextMark, String problem, Mark problemMark) {
         super(context, contextMark, problem, problemMark, null, null);
     }
diff --git a/src/main/java/org/yaml/snakeyaml/parser/Production.java b/src/main/java/org/yaml/snakeyaml/parser/Production.java
index bf6a2fa..1fc0ada 100644
--- a/src/main/java/org/yaml/snakeyaml/parser/Production.java
+++ b/src/main/java/org/yaml/snakeyaml/parser/Production.java
@@ -17,6 +17,9 @@
 

 import org.yaml.snakeyaml.events.Event;

 

+/**

+ * Helper for {@link ParserImpl}.

+ */

 interface Production {

     public Event produce();

 }

diff --git a/src/main/java/org/yaml/snakeyaml/scanner/Scanner.java b/src/main/java/org/yaml/snakeyaml/scanner/Scanner.java
index 3e7b079..b8284ff 100644
--- a/src/main/java/org/yaml/snakeyaml/scanner/Scanner.java
+++ b/src/main/java/org/yaml/snakeyaml/scanner/Scanner.java
@@ -20,28 +20,53 @@
 import org.yaml.snakeyaml.tokens.Token;
 
 /**
- * Produce <code>Token<code>s.
- * 
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * This interface represents an input stream of {@link Token Tokens}.
+ * <p>
+ * The parser and the scanner form together the 'Parse' step in
+ * the loading process (see chapter 3.1 of the 
+ * <a href="http://www.yaml.org/spec/1.2/spec.html">YAML Specification</a>).
+ * </p>
+ *
+ * @see org.yaml.snakeyaml.tokens.Token
  */
 public interface Scanner {
+	
     /**
      * Check if the next token is one of the given types.
+	 *
+     * @param choices List of token types.
+     * @return <code>true</code>  if the next token can be assigned to a 
+     * variable of at least one of the given types. Returns <code>false</code>
+     * if no more tokens are available.
+     * @throws ScannerException Thrown in case of malformed input.
      */
     boolean checkToken(List<Class<? extends Token>> choices);
 
     /**
-     * Convenience method to avoid List creation
+     * Check if the next token is assignable to the given type.
+     * <p>
+     * This is a convenience method to avoid <code>List</code> creation if
+     * calling {@link #checkToken(List)} for
+     * a single type.
+     * </p>
+     * @param choice Token type.
+     * @return True if the next token is an instance of <code>type</code>.
+     * False if no more tokens are available.
+     * @throws ScannerException Thrown in case of malformed input.
      */
     boolean checkToken(Class<? extends Token> choice);
 
     /**
-     * Return the next token, but do not delete it from the queue.
+     * Return the next token, but do not delete it from the stream.
+     * @return The token that will be returned on the next call to {@link #getToken}
+     * @throws ScannerException Thrown in case of malformed input.
      */
     Token peekToken();
 
     /**
-     * Return the next token.
+     * Returns the next token.
+     * <p>The token will be removed from the stream.</p>
+     * @throws ScannerException Thrown in case of malformed input.
      */
     Token getToken();
 }
diff --git a/src/main/java/org/yaml/snakeyaml/scanner/ScannerException.java b/src/main/java/org/yaml/snakeyaml/scanner/ScannerException.java
index 6615d8c..2029a07 100644
--- a/src/main/java/org/yaml/snakeyaml/scanner/ScannerException.java
+++ b/src/main/java/org/yaml/snakeyaml/scanner/ScannerException.java
@@ -19,17 +19,39 @@
 import org.yaml.snakeyaml.error.MarkedYAMLException;
 
 /**
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * Exception thrown by the {@link Scanner} implementations in case of
+ * malformed input.
  */
 public class ScannerException extends MarkedYAMLException {
-
+	
     private static final long serialVersionUID = 4782293188600445954L;
 
+    /**
+     * Constructs an instance.
+     * @param context	Part of the input document in which vicinity 
+     *    the problem occurred.
+     * @param contextMark	Position of the <code>context</code> 
+     *    within the document.
+     * @param problem	Part of the input document that caused the problem.
+     * @param problemMark Position of the <code>problem</code> 
+     *    within the document.
+     * @param note	Message for the user with further information about the problem.
+     */
     public ScannerException(String context, Mark contextMark, String problem, Mark problemMark,
             String note) {
         super(context, contextMark, problem, problemMark, note);
     }
 
+    /**
+     * Constructs an instance.
+     * @param context	Part of the input document in which vicinity 
+     *    the problem occurred.
+     * @param contextMark	Position of the <code>context</code> 
+     *    within the document.
+     * @param problem	Part of the input document that caused the problem.
+     * @param problemMark Position of the <code>problem</code> 
+     *    within the document.
+     */
     public ScannerException(String context, Mark contextMark, String problem, Mark problemMark) {
         this(context, contextMark, problem, problemMark, null);
     }
diff --git a/src/main/java/org/yaml/snakeyaml/scanner/SimpleKey.java b/src/main/java/org/yaml/snakeyaml/scanner/SimpleKey.java
index a6b416f..70cc017 100644
--- a/src/main/java/org/yaml/snakeyaml/scanner/SimpleKey.java
+++ b/src/main/java/org/yaml/snakeyaml/scanner/SimpleKey.java
@@ -19,8 +19,11 @@
 
 /**
  * Simple keys treatment.
+ * <p>
+ * Helper class for {@link ScannerImpl}.
+ * </p>
  * 
- * @see <a href="http://pyyaml.org/wiki/PyYAML">PyYAML</a> for more information
+ * @see ScannerImpl
  */
 final class SimpleKey {
     private int tokenNumber;