diff --git a/src/main/java/org/apache/maven/reporting/exec/MavenReportExecution.java b/src/main/java/org/apache/maven/reporting/exec/MavenReportExecution.java
index 7731755..2c2dfcb 100644
--- a/src/main/java/org/apache/maven/reporting/exec/MavenReportExecution.java
+++ b/src/main/java/org/apache/maven/reporting/exec/MavenReportExecution.java
@@ -24,8 +24,8 @@
 
 /**
  * <p>
- *   Since Maven 3, reporting plugin {@link MavenReport} are not anymore prepared by Maven core.
- *   This class will store all necessary information for {@link MavenReport} generation:
+ *   Since Maven 3, reporting plugins (ie {@link MavenReport}s) are not anymore prepared by Maven core.
+ *   This class will store all necessary information for later {@link MavenReport} generation/execution:
  *   <ul>
  *     <li>a {@link MavenReport},</li>
  *     <li>the goal name associated to the report,</li>
@@ -34,11 +34,12 @@
  *   </ul> 
  * </p>
  * <p>
- *   With this, it's possible to execute the {@link MavenReport#generate(org.codehaus.doxia.sink.Sink, java.util.Locale)}
- *   method, setting the current {@link Thread} classLoader first with {@link #classLoader}
+ *   With this bean, a plugin wanting to generate a report (= <i>"execute"</i> the report) has to call the
+ *   {@link MavenReport#generate(org.codehaus.doxia.sink.Sink, java.util.Locale)}
+ *   method, setting the current {@link Thread} classLoader first with {@link #classLoader}.
  * </p>
  * <p>
- *   This bean will be instantiated by {@link MavenReportExecutor}.
+ *   This bean is instantiated by {@link MavenReportExecutor}.
  * </p>
  * 
  * @author Olivier Lamy
diff --git a/src/main/java/org/apache/maven/reporting/exec/MavenReportExecutor.java b/src/main/java/org/apache/maven/reporting/exec/MavenReportExecutor.java
index 7289930..c2fdc92 100644
--- a/src/main/java/org/apache/maven/reporting/exec/MavenReportExecutor.java
+++ b/src/main/java/org/apache/maven/reporting/exec/MavenReportExecutor.java
@@ -25,11 +25,11 @@
 import org.apache.maven.reporting.MavenReport;
 
 /**
- * This component will execute (prepare) {@link MavenReport}s for later generation.
+ * This component will prepare {@link MavenReport}s for later generation.
  * If a {@link MavenReport} needs to fork a goal or a lifecycle phase, this fork is executed.
  * <p>Notice that Maven Reports are classical {@link org.apache.maven.plugin.Mojo Mojos} implementing
  * the {@link MavenReport} interface: when used as reports, their <code>Mojo.execute()</code> method is
- * not used.</p> 
+ * not to be used but <code>MavenReport.generate()</code>.</p> 
  *
  * @author Olivier Lamy
  */
@@ -39,7 +39,7 @@
      * Build the {@link MavenReport}s, with associated forked executions if necessary. 
      * 
      * @param mavenReportExecutorRequest
-     * @return Maven report execution results
+     * @return a list or prepared Maven report executions
      * @throws MojoExecutionException
      */
     List<MavenReportExecution> buildMavenReports( MavenReportExecutorRequest mavenReportExecutorRequest )
diff --git a/src/site/apt/index.apt.vm b/src/site/apt/index.apt.vm
index 83dafae..48fef7c 100644
--- a/src/site/apt/index.apt.vm
+++ b/src/site/apt/index.apt.vm
@@ -28,7 +28,7 @@
 
 ${project.name}
 
-  Classes to manage report plugin executions with Maven 3, through
+  Classes to prepare report plugins execution with Maven 3, through
   {{{./apidocs/org/apache/maven/reporting/exec/MavenReportExecutor.html}MavenReportExecutor}}
   ({{{./apidocs/org/apache/maven/reporting/exec/DefaultMavenReportExecutor.html}implementation}}):
   report plugins can be configured in <<<\<configuration\>>>> element of <<<maven-site-plugin>>> or any other
