diff --git a/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/parsing/EiffelEventParser.java b/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/parsing/EiffelEventParser.java
index f496f6f..faa1fed 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/parsing/EiffelEventParser.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/parsing/EiffelEventParser.java
@@ -19,6 +19,13 @@
 
 public interface EiffelEventParser {
 
+  /**
+   * Creates SCC events for all commits reachable from the commit that triggered the {@link Event}
+   * event.
+   *
+   * @param event - Describes a revision from which to create SCC events.
+   * @throws EventParsingException- When event-creation fails.
+   */
   void createAndScheduleSccFromEvent(Event event) throws EventParsingException;
 
   /**
@@ -27,7 +34,7 @@
    *
    * @param repoName - Name of the repository where the branch exists.
    * @param branchRef - Creates missing events for all commits reachable from branch.
-   * @throws EventParsingException - when event-creation fails.
+   * @throws EventParsingException - When event-creation fails.
    */
   void createAndScheduleSccFromBranch(String repoName, String branchRef)
       throws EventParsingException;
@@ -38,7 +45,7 @@
    * @param repoName - Name of the repository were the commits exists.
    * @param branchRef - Ref of the branch to create events for.
    * @param commit - Creates missing events for all commits reachable from commit.
-   * @throws EventParsingException - when event-creation fails.
+   * @throws EventParsingException - When event-creation fails.
    */
   void createAndScheduleSccFromCommit(String repoName, String branchRef, String commit)
       throws EventParsingException;
@@ -48,7 +55,7 @@
    *
    * @param repoName - Name of the repository where the branch exists.
    * @param branchRef - Creates missing events for all commits reachable from branchRef.
-   * @throws EventParsingException - when event-creation fails.
+   * @throws EventParsingException - When event-creation fails.
    */
   void createAndScheduleMissingScssFromBranch(String repoName, String branchRef)
       throws EventParsingException;
@@ -61,7 +68,7 @@
    * @param commitSha1TransactionEnd - Tip before submit transaction.
    * @param submitter - The submitter
    * @param submittedAt - When the commit was submitted.
-   * @throws EventParsingException - when event-creation fails.
+   * @throws EventParsingException - When event-creation fails.
    */
   void createAndScheduleMissingScss(
       SourceChangeEventKey scs,
@@ -77,7 +84,7 @@
    * @param tagName - The name of the tag.
    * @param creationTime - The time at which the tag was created.
    * @param force - Whether existing events should be replaced or not.
-   * @throws EventParsingException - when event-creation fails.
+   * @throws EventParsingException - When event-creation fails.
    */
   void createAndScheduleArtc(String repoName, String tagName, Long creationTime, boolean force)
       throws EventParsingException;
