javadoc
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/ClassRealmUtils.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/ClassRealmUtils.java
index 5747a46..13e846d 100644
--- a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/ClassRealmUtils.java
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/ClassRealmUtils.java
@@ -19,6 +19,9 @@
 import org.codehaus.plexus.classworlds.realm.ClassRealm;
 import org.eclipse.sisu.inject.Weak;
 
+/**
+ * Utility methods for dealing with Plexus {@link ClassRealm}s.
+ */
 public final class ClassRealmUtils
 {
     // ----------------------------------------------------------------------
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/ComponentDescriptorBeanModule.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/ComponentDescriptorBeanModule.java
index 65ec5a2..7486006 100644
--- a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/ComponentDescriptorBeanModule.java
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/ComponentDescriptorBeanModule.java
@@ -36,15 +36,26 @@
 import com.google.inject.Injector;
 import com.google.inject.ProvisionException;
 
+/**
+ * {@link PlexusBeanModule} backed by a sequence of {@link ComponentDescriptor}s.
+ */
 public final class ComponentDescriptorBeanModule
     implements PlexusBeanModule
 {
+    // ----------------------------------------------------------------------
+    // Implementation fields
+    // ----------------------------------------------------------------------
+
     private final ClassSpace space;
 
     private final Map<Component, DeferredClass<?>> componentMap = new HashMap<Component, DeferredClass<?>>();
 
     private final Map<String, PlexusBeanMetadata> metadataMap = new HashMap<String, PlexusBeanMetadata>();
 
+    // ----------------------------------------------------------------------
+    // Constructors
+    // ----------------------------------------------------------------------
+
     public ComponentDescriptorBeanModule( final ClassSpace space, final List<ComponentDescriptor<?>> descriptors )
     {
         this.space = space;
@@ -77,6 +88,10 @@
         }
     }
 
+    // ----------------------------------------------------------------------
+    // Public methods
+    // ----------------------------------------------------------------------
+
     public PlexusBeanSource configure( final Binder binder )
     {
         final PlexusTypeBinder plexusTypeBinder = new PlexusTypeBinder( binder );
@@ -87,6 +102,10 @@
         return new PlexusDescriptorBeanSource( metadataMap );
     }
 
+    // ----------------------------------------------------------------------
+    // Implementation methods
+    // ----------------------------------------------------------------------
+
     static Component newComponent( final ComponentDescriptor<?> cd )
     {
         return new ComponentImpl( cd.getRoleClass(), cd.getRoleHint(), cd.getInstantiationStrategy(),
@@ -99,9 +118,20 @@
                                     Collections.singletonList( cr.getRoleHint() ) );
     }
 
+    // ----------------------------------------------------------------------
+    // Implementation types
+    // ----------------------------------------------------------------------
+
+    /**
+     * {@link DeferredClass} backed by a {@link ComponentDescriptor} and {@link ComponentFactory} hint.
+     */
     private static final class DeferredFactoryClass
         implements DeferredClass<Object>, DeferredProvider<Object>
     {
+        // ----------------------------------------------------------------------
+        // Implementation fields
+        // ----------------------------------------------------------------------
+
         @Inject
         private PlexusContainer container;
 
@@ -112,12 +142,20 @@
 
         private final String hint;
 
+        // ----------------------------------------------------------------------
+        // Constructors
+        // ----------------------------------------------------------------------
+
         DeferredFactoryClass( final ComponentDescriptor<?> cd, final String hint )
         {
             this.cd = cd;
             this.hint = hint;
         }
 
+        // ----------------------------------------------------------------------
+        // Public methods
+        // ----------------------------------------------------------------------
+
         @SuppressWarnings( { "unchecked", "rawtypes" } )
         public Class load()
             throws TypeNotPresentException
@@ -168,11 +206,22 @@
         }
     }
 
+    /**
+     * {@link PlexusBeanMetadata} backed by list of {@link ComponentRequirement}s.
+     */
     private static final class ComponentMetadata
         implements PlexusBeanMetadata
     {
+        // ----------------------------------------------------------------------
+        // Implementation fields
+        // ----------------------------------------------------------------------
+
         private Map<String, Requirement> requirementMap = new HashMap<String, Requirement>();
 
+        // ----------------------------------------------------------------------
+        // Constructors
+        // ----------------------------------------------------------------------
+
         ComponentMetadata( final ClassSpace space, final List<ComponentRequirement> requirements )
         {
             for ( int i = 0, size = requirements.size(); i < size; i++ )
@@ -182,6 +231,10 @@
             }
         }
 
+        // ----------------------------------------------------------------------
+        // Public methods
+        // ----------------------------------------------------------------------
+
         public boolean isEmpty()
         {
             return requirementMap.isEmpty();
@@ -203,16 +256,31 @@
         }
     }
 
+    /**
+     * {@link PlexusBeanSource} backed by simple map of {@link PlexusBeanMetadata}.
+     */
     private static final class PlexusDescriptorBeanSource
         implements PlexusBeanSource
     {
+        // ----------------------------------------------------------------------
+        // Implementation fields
+        // ----------------------------------------------------------------------
+
         private Map<String, PlexusBeanMetadata> metadataMap;
 
+        // ----------------------------------------------------------------------
+        // Constructors
+        // ----------------------------------------------------------------------
+
         PlexusDescriptorBeanSource( final Map<String, PlexusBeanMetadata> metadataMap )
         {
             this.metadataMap = metadataMap;
         }
 
+        // ----------------------------------------------------------------------
+        // Public methods
+        // ----------------------------------------------------------------------
+
         public PlexusBeanMetadata getBeanMetadata( final Class<?> implementation )
         {
             if ( null == metadataMap )
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/CompositeBeanHelper.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/CompositeBeanHelper.java
index b3bb528..ce304c8 100644
--- a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/CompositeBeanHelper.java
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/CompositeBeanHelper.java
@@ -34,10 +34,21 @@
 
 import com.google.inject.TypeLiteral;
 
+/**
+ * Helper class that implements low-level Plexus configuration of composite beans.
+ */
 public final class CompositeBeanHelper
 {
+    // ----------------------------------------------------------------------
+    // Constants
+    // ----------------------------------------------------------------------
+
     private static final Type[] NO_TYPES = {};
 
+    // ----------------------------------------------------------------------
+    // Implementation fields
+    // ----------------------------------------------------------------------
+
     private final ConverterLookup lookup;
 
     private final ClassLoader loader;
@@ -46,6 +57,10 @@
 
     private final ConfigurationListener listener;
 
+    // ----------------------------------------------------------------------
+    // Constructors
+    // ----------------------------------------------------------------------
+
     public CompositeBeanHelper( final ConverterLookup lookup, final ClassLoader loader,
                                 final ExpressionEvaluator evaluator, final ConfigurationListener listener )
     {
@@ -55,6 +70,10 @@
         this.listener = listener;
     }
 
+    // ----------------------------------------------------------------------
+    // Public methods
+    // ----------------------------------------------------------------------
+
     public void setDefault( final Object bean, final Object defaultValue, final PlexusConfiguration configuration )
         throws ComponentConfigurationException
     {
@@ -219,6 +238,10 @@
         }
     }
 
+    // ----------------------------------------------------------------------
+    // Implementation methods
+    // ----------------------------------------------------------------------
+
     private Object convertProperty( final Class<?> beanType, final Class<?> rawPropertyType,
                                     final Type genericPropertyType, final PlexusConfiguration configuration )
         throws ComponentConfigurationException
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/DefaultPlexusBeans.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/DefaultPlexusBeans.java
index 6262f7a..b1022ef 100644
--- a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/DefaultPlexusBeans.java
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/DefaultPlexusBeans.java
@@ -16,6 +16,9 @@
 
 import com.google.inject.name.Named;
 
+/**
+ * Sequence of {@link PlexusBean}s backed by {@link BeanEntry}s.
+ */
 final class DefaultPlexusBeans<T>
     implements Iterable<PlexusBean<T>>
 {
@@ -47,11 +50,22 @@
     // Implementation types
     // ----------------------------------------------------------------------
 
+    /**
+     * {@link PlexusBean} iterator backed by {@link BeanEntry}s.
+     */
     final class Itr
         implements Iterator<PlexusBean<T>>
     {
+        // ----------------------------------------------------------------------
+        // Implementation fields
+        // ----------------------------------------------------------------------
+
         private final Iterator<BeanEntry<Named, T>> itr = beans.iterator();
 
+        // ----------------------------------------------------------------------
+        // Public methods
+        // ----------------------------------------------------------------------
+
         public boolean hasNext()
         {
             return itr.hasNext();
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/HintedPlexusBeans.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/HintedPlexusBeans.java
index 72d51bf..17cfa6f 100644
--- a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/HintedPlexusBeans.java
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/HintedPlexusBeans.java
@@ -19,6 +19,9 @@
 import com.google.inject.TypeLiteral;
 import com.google.inject.name.Named;
 
+/**
+ * Hint-driven sequence of {@link PlexusBean}s that uses {@link MissingPlexusBean}s to indicate missing hints.
+ */
 final class HintedPlexusBeans<T>
     implements Iterable<PlexusBean<T>>
 {
@@ -51,8 +54,10 @@
 
     public Iterator<PlexusBean<T>> iterator()
     {
+        // assume all hints are missing to begin with
         final List<PlexusBean<T>> plexusBeans = new ArrayList<PlexusBean<T>>( missingPlexusBeans );
 
+        // scan available beans and populate list according to hint
         final int size = plexusBeans.size();
         final Iterator<BeanEntry<Named, T>> itr = beans.iterator();
         for ( int numFound = 0; numFound < size && itr.hasNext(); )
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusAnnotatedBeanModule.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusAnnotatedBeanModule.java
index 4277617..266dc71 100644
--- a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusAnnotatedBeanModule.java
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusAnnotatedBeanModule.java
@@ -99,16 +99,31 @@
     // Implementation types
     // ----------------------------------------------------------------------
 
+    /**
+     * {@link PlexusBeanSource} backed by runtime annotation metadata.
+     */
     private static final class PlexusAnnotatedBeanSource
         implements PlexusBeanSource
     {
+        // ----------------------------------------------------------------------
+        // Implementation fields
+        // ----------------------------------------------------------------------
+
         private final PlexusBeanMetadata metadata;
 
+        // ----------------------------------------------------------------------
+        // Constructors
+        // ----------------------------------------------------------------------
+
         PlexusAnnotatedBeanSource( final Map<?, ?> variables )
         {
             metadata = new PlexusAnnotatedMetadata( variables );
         }
 
+        // ----------------------------------------------------------------------
+        // Public methods
+        // ----------------------------------------------------------------------
+
         public PlexusBeanMetadata getBeanMetadata( final Class<?> implementation )
         {
             return implementation.isAnnotationPresent( Component.class ) ? metadata : null;
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusBeanModule.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusBeanModule.java
index 360547e..c24bbab 100644
--- a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusBeanModule.java
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusBeanModule.java
@@ -11,8 +11,17 @@
 package org.eclipse.sisu.plexus;
 
 import com.google.inject.Binder;
+import com.google.inject.Module;
 
+/**
+ * {@link Module}-like interface for contributing Plexus bindings with additional metadata.
+ */
 public interface PlexusBeanModule
 {
+    /**
+     * Contributes bindings and returns any associated {@link PlexusBeanSource} metadata.
+     * 
+     * @see Module#configure(Binder)
+     */
     PlexusBeanSource configure( Binder binder );
 }
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusConfigurations.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusConfigurations.java
index 1ff41d2..9cca04e 100644
--- a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusConfigurations.java
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusConfigurations.java
@@ -55,7 +55,7 @@
     }
 
     // ----------------------------------------------------------------------
-    // Implementation classes
+    // Implementation types
     // ----------------------------------------------------------------------
 
     /**
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusDateTypeConverter.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusDateTypeConverter.java
index 72bbe7a..2884034 100644
--- a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusDateTypeConverter.java
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusDateTypeConverter.java
@@ -47,7 +47,7 @@
     }
 
     // ----------------------------------------------------------------------
-    // Guice binding
+    // Public methods
     // ----------------------------------------------------------------------
 
     public void configure( final Binder binder )
@@ -56,10 +56,6 @@
         binder.convertToTypes( this, this );
     }
 
-    // ----------------------------------------------------------------------
-    // Public methods
-    // ----------------------------------------------------------------------
-
     public boolean matches( final TypeLiteral<?> type )
     {
         return Date.class == type.getRawType();
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusLifecycleManager.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusLifecycleManager.java
index c96e8bc..f0dc25a 100644
--- a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusLifecycleManager.java
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusLifecycleManager.java
@@ -202,7 +202,7 @@
     }
 
     // ----------------------------------------------------------------------
-    // Shared implementation methods
+    // Locally-shared methods
     // ----------------------------------------------------------------------
 
     Logger getPlexusLogger( final Object bean )
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusRequirements.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusRequirements.java
index 9fe0997..ef5a001 100644
--- a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusRequirements.java
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusRequirements.java
@@ -101,7 +101,7 @@
     }
 
     // ----------------------------------------------------------------------
-    // Implementation classes
+    // Implementation types
     // ----------------------------------------------------------------------
 
     /**
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusSpaceModule.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusSpaceModule.java
index 8917889..7ddaae9 100644
--- a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusSpaceModule.java
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusSpaceModule.java
@@ -26,16 +26,31 @@
 import com.google.inject.Binder;
 import com.google.inject.Module;
 
+/**
+ * {@link Module} that provides Plexus semantics without the full-blown Plexus container.
+ */
 public final class PlexusSpaceModule
     implements Module
 {
+    // ----------------------------------------------------------------------
+    // Implementation fields
+    // ----------------------------------------------------------------------
+
     private final ClassSpace space;
 
+    // ----------------------------------------------------------------------
+    // Constructors
+    // ----------------------------------------------------------------------
+
     public PlexusSpaceModule( final ClassSpace space )
     {
         this.space = space;
     }
 
+    // ----------------------------------------------------------------------
+    // Public methods
+    // ----------------------------------------------------------------------
+
     public void configure( final Binder binder )
     {
         final Context context = new ParameterizedContext();
@@ -58,9 +73,20 @@
         binder.install( new PlexusBindingModule( manager, xmlModule ) );
     }
 
+    // ----------------------------------------------------------------------
+    // Implementation types
+    // ----------------------------------------------------------------------
+
+    /**
+     * {@link Context} backed by Sisu {@link Parameters}.
+     */
     static final class ParameterizedContext
         extends DefaultContext
     {
+        // ----------------------------------------------------------------------
+        // Implementation methods
+        // ----------------------------------------------------------------------
+
         @Inject
         protected void setParameters( @Parameters final Map<?, ?> parameters )
         {
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusTypeBinder.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusTypeBinder.java
index 6b1f5ea..397fc92 100644
--- a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusTypeBinder.java
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusTypeBinder.java
@@ -21,6 +21,9 @@
 import com.google.inject.Scopes;
 import com.google.inject.binder.ScopedBindingBuilder;
 
+/**
+ * {@link PlexusTypeListener} that binds Plexus {@link Component}s.
+ */
 public final class PlexusTypeBinder
     implements PlexusTypeListener
 {
@@ -110,19 +113,34 @@
     // Implementation types
     // ----------------------------------------------------------------------
 
+    /**
+     * {@link DescribedBinding} that captures Plexus descriptions.
+     */
     private static final class PlexusDescribedBinding
         implements DescribedBinding
     {
+        // ----------------------------------------------------------------------
+        // Implementation fields
+        // ----------------------------------------------------------------------
+
         private final Object source;
 
         private final String description;
 
+        // ----------------------------------------------------------------------
+        // Constructors
+        // ----------------------------------------------------------------------
+
         PlexusDescribedBinding( final Object source, final String description )
         {
             this.source = source;
             this.description = description;
         }
 
+        // ----------------------------------------------------------------------
+        // Public methods
+        // ----------------------------------------------------------------------
+
         public String getDescription()
         {
             return description;
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusTypeVisitor.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusTypeVisitor.java
index 66f84cb..6078146 100644
--- a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusTypeVisitor.java
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusTypeVisitor.java
@@ -122,12 +122,19 @@
     }
 
     // ----------------------------------------------------------------------
-    // Component annotation scanner
+    // Implementation types
     // ----------------------------------------------------------------------
 
+    /**
+     * {@link AnnotationVisitor} that records details of @{@link Component} annotations.
+     */
     static final class ComponentAnnotationVisitor
         implements AnnotationVisitor
     {
+        // ----------------------------------------------------------------------
+        // Implementation fields
+        // ----------------------------------------------------------------------
+
         private String role;
 
         private String hint;
@@ -136,6 +143,10 @@
 
         private String description;
 
+        // ----------------------------------------------------------------------
+        // Public methods
+        // ----------------------------------------------------------------------
+
         public void reset()
         {
             role = null;
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusXmlBeanModule.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusXmlBeanModule.java
index d928c01..9e7379a 100644
--- a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusXmlBeanModule.java
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusXmlBeanModule.java
@@ -97,16 +97,31 @@
     // Implementation types
     // ----------------------------------------------------------------------
 
+    /**
+     * {@link PlexusBeanSource} backed by consumable XML metadata.
+     */
     private static final class PlexusXmlBeanSource
         implements PlexusBeanSource
     {
+        // ----------------------------------------------------------------------
+        // Implementation fields
+        // ----------------------------------------------------------------------
+
         private Map<String, PlexusBeanMetadata> metadataMap;
 
+        // ----------------------------------------------------------------------
+        // Constructors
+        // ----------------------------------------------------------------------
+
         PlexusXmlBeanSource( final Map<String, PlexusBeanMetadata> metadataMap )
         {
             this.metadataMap = metadataMap;
         }
 
+        // ----------------------------------------------------------------------
+        // Public methods
+        // ----------------------------------------------------------------------
+
         public PlexusBeanMetadata getBeanMetadata( final Class<?> implementation )
         {
             if ( null == metadataMap )
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusXmlScanner.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusXmlScanner.java
index fe7e4cb..dbe28f9 100644
--- a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusXmlScanner.java
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusXmlScanner.java
@@ -34,6 +34,9 @@
 import org.eclipse.sisu.space.ClassSpace;
 import org.eclipse.sisu.space.Streams;
 
+/**
+ * Helper class that can scan XML resources for Plexus metadata.
+ */
 final class PlexusXmlScanner
 {
     // ----------------------------------------------------------------------
@@ -65,7 +68,7 @@
     }
 
     // ----------------------------------------------------------------------
-    // Local methods
+    // Locally-shared methods
     // ----------------------------------------------------------------------
 
     Map<Component, DeferredClass<?>> scan( final ClassSpace space, final boolean root )
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PseudoPlexusContainer.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PseudoPlexusContainer.java
index a6c3a71..ad45b80 100644
--- a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PseudoPlexusContainer.java
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PseudoPlexusContainer.java
@@ -28,6 +28,9 @@
 
 import com.google.inject.TypeLiteral;
 
+/**
+ * Delegating {@link PlexusContainer} wrapper that doesn't require an actual container instance.
+ */
 @Singleton
 @SuppressWarnings( { "unchecked", "rawtypes" } )
 final class PseudoPlexusContainer
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/RealmFilter.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/RealmFilter.java
index d30eadd..e853900 100644
--- a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/RealmFilter.java
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/RealmFilter.java
@@ -14,10 +14,14 @@
 import java.util.NoSuchElementException;
 import java.util.Set;
 
+import org.codehaus.plexus.classworlds.realm.ClassRealm;
 import org.eclipse.sisu.BeanEntry;
 
 import com.google.inject.name.Named;
 
+/**
+ * Sequence of {@link BeanEntry}s filtered according to whether they are visible from the current {@link ClassRealm}.
+ */
 final class RealmFilter<T>
     implements Iterable<BeanEntry<Named, T>>
 {
@@ -54,20 +58,35 @@
     // Implementation types
     // ----------------------------------------------------------------------
 
+    /**
+     * {@link BeanEntry} iterator that only returns entries visible from the given set of named realms.
+     */
     final class FilteredItr
         implements Iterator<BeanEntry<Named, T>>
     {
+        // ----------------------------------------------------------------------
+        // Implementation fields
+        // ----------------------------------------------------------------------
+
         private final Iterator<BeanEntry<Named, T>> itr = beans.iterator();
 
         private final Set<String> realmNames;
 
         private BeanEntry<Named, T> nextBean;
 
+        // ----------------------------------------------------------------------
+        // Constructors
+        // ----------------------------------------------------------------------
+
         public FilteredItr( final Set<String> realmNames )
         {
             this.realmNames = realmNames;
         }
 
+        // ----------------------------------------------------------------------
+        // Public methods
+        // ----------------------------------------------------------------------
+
         public boolean hasNext()
         {
             if ( null != nextBean )
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/package-info.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/package-info.java
new file mode 100644
index 0000000..c2bad33
--- /dev/null
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/package-info.java
@@ -0,0 +1,15 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2013 Sonatype, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Stuart McCulloch (Sonatype, Inc.) - initial API and implementation
+ *******************************************************************************/
+/**
+ * Implements Plexus semantics on top of Google-Guice. 
+ */
+package org.eclipse.sisu.plexus;
+