diff --git a/src/de/uni_passau/fim/seibt/gitwrapper/repo/Branch.java b/src/de/uni_passau/fim/seibt/gitwrapper/repo/Branch.java
index 8fcf1d52cf824e29f020757746ce0118fa423970..f8bfa3433555a830c45b261c7f0dd6458d18a2a2 100644
--- a/src/de/uni_passau/fim/seibt/gitwrapper/repo/Branch.java
+++ b/src/de/uni_passau/fim/seibt/gitwrapper/repo/Branch.java
@@ -6,10 +6,19 @@ import java.util.Optional;
 import java.util.function.Function;
 import java.util.logging.Logger;
 
+/**
+ *  A {@link Branch} is a named {@link Reference} to a git branch pointing to an {@link Commit}.
+ */
 public class Branch extends Reference {
 
     private static final Logger LOG = Logger.getLogger(Branch.class.getCanonicalName());
 
+    /**
+     * Constructs an object referencing an existing git branch.
+     *
+     * @param repo the repo this branch is part of
+     * @param name the branch name
+     */
     Branch(Repository repo, String name) {
         super(repo, name);
     }
@@ -19,7 +28,7 @@ public class Branch extends Reference {
      *
      * @return true if the pull was successful
      */
-    public Boolean pull() {
+    public boolean pull() {
         if (!repo.checkout(this)) {
             return false;
         }
@@ -49,7 +58,7 @@ public class Branch extends Reference {
     }
 
     /**
-     * Reruns the branch name
+     * Reruns the branch name.
      *
      * @return the branch name
      */
diff --git a/src/de/uni_passau/fim/seibt/gitwrapper/repo/Commit.java b/src/de/uni_passau/fim/seibt/gitwrapper/repo/Commit.java
index 8a0afed9e53f239003ee3aafe9ec1dab5d6f4c12..1dd75d7cc1d146a56d7acc5e6f84172a5c5fda3a 100644
--- a/src/de/uni_passau/fim/seibt/gitwrapper/repo/Commit.java
+++ b/src/de/uni_passau/fim/seibt/gitwrapper/repo/Commit.java
@@ -11,6 +11,7 @@ import java.util.regex.Pattern;
  * A {@link Commit} made in a {@link Repository}.
  */
 public class Commit extends Reference {
+
     private static final Logger LOG = Logger.getLogger(Commit.class.getCanonicalName());
 
     // since there is no porcelain format for this command, this regex is might depend on the git version
@@ -19,7 +20,6 @@ public class Commit extends Reference {
     private static final Pattern COMMITTER_INFO = Pattern.compile("committer (.*?)<(.*?)> (\\d+) ([+-]\\d{4})\\n");
     private static final Pattern EMPTY_LINE = Pattern.compile("^\\s*$", Pattern.MULTILINE);
 
-
     private String message;
 
     private String author;
diff --git a/src/de/uni_passau/fim/seibt/gitwrapper/repo/DummyCommit.java b/src/de/uni_passau/fim/seibt/gitwrapper/repo/DummyCommit.java
index 1b082256477fcd9bf98f918dcf6777d281c84cfa..5fc852d26151c7c057847c2a203bf33cabae9c2f 100644
--- a/src/de/uni_passau/fim/seibt/gitwrapper/repo/DummyCommit.java
+++ b/src/de/uni_passau/fim/seibt/gitwrapper/repo/DummyCommit.java
@@ -60,6 +60,6 @@ public class DummyCommit extends Commit {
 
     private void setterWarning() {
         LOG.finest(() -> "Ignoring a setter call on the DummyCommit for " + repo);
-        // TODO gets called often while parsing blame lines, maybe change level
+        // TODO gets called often while parsing blame lines
     }
 }
diff --git a/src/de/uni_passau/fim/seibt/gitwrapper/repo/GitWrapper.java b/src/de/uni_passau/fim/seibt/gitwrapper/repo/GitWrapper.java
index 245196c2c700b8c55111b23d0fc29d38fc3d701a..e7942d9033b8f7851656b23c28b608a3ae981f59 100644
--- a/src/de/uni_passau/fim/seibt/gitwrapper/repo/GitWrapper.java
+++ b/src/de/uni_passau/fim/seibt/gitwrapper/repo/GitWrapper.java
@@ -1,7 +1,9 @@
 package de.uni_passau.fim.seibt.gitwrapper.repo;
 
 
-import static de.uni_passau.fim.seibt.gitwrapper.process.ProcessExecutor.asList;
+import de.uni_passau.fim.seibt.gitwrapper.process.ProcessExecutor.ExecRes;
+import de.uni_passau.fim.seibt.gitwrapper.process.ToolNotWorkingException;
+import de.uni_passau.fim.seibt.gitwrapper.process.ToolWrapper;
 
 import java.io.File;
 import java.util.HashMap;
@@ -13,9 +15,7 @@ import java.util.logging.Logger;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import de.uni_passau.fim.seibt.gitwrapper.process.ProcessExecutor.ExecRes;
-import de.uni_passau.fim.seibt.gitwrapper.process.ToolNotWorkingException;
-import de.uni_passau.fim.seibt.gitwrapper.process.ToolWrapper;
+import static de.uni_passau.fim.seibt.gitwrapper.process.ProcessExecutor.asList;
 
 /**
  * A wrapper for executing git commands.
@@ -127,6 +127,12 @@ public class GitWrapper extends ToolWrapper {
         return res.map(toRepo);
     }
 
+    /**
+     * Imports an existing repository.
+     *
+     * @param directory the path to the repository
+     * @return the {@link Repository} if the import was successful or an empty {@link Optional} if there was an error
+     */
     public Optional<Repository> importRepository(File directory) {
         if (!isGitDir(directory)) {
             return Optional.empty();
diff --git a/src/de/uni_passau/fim/seibt/gitwrapper/repo/Reference.java b/src/de/uni_passau/fim/seibt/gitwrapper/repo/Reference.java
index dbe5d11895b93116cf2909f63acbdb4aaef78469..55e6050bfaf1eed32fe86eacc506ea530f0f7f92 100644
--- a/src/de/uni_passau/fim/seibt/gitwrapper/repo/Reference.java
+++ b/src/de/uni_passau/fim/seibt/gitwrapper/repo/Reference.java
@@ -10,6 +10,11 @@ import java.util.function.Function;
 import java.util.logging.Logger;
 import java.util.stream.Collectors;
 
+/**
+ * A git object referencing a tree-ish object.
+ * @see Commit
+ * @see Branch
+ */
 public abstract class Reference {
 
     private static final Logger LOG = Logger.getLogger(Reference.class.getCanonicalName());
@@ -24,6 +29,12 @@ public abstract class Reference {
         this.git = repo.getGit();
     }
 
+    /**
+     * Returns the id of this reference. This can be a SHA1 hash or a reference name, but must resolve to a
+     * valid git object.
+     *
+     * @return the id
+     */
     public String getId() {
         return id;
     }
diff --git a/src/de/uni_passau/fim/seibt/gitwrapper/repo/Repository.java b/src/de/uni_passau/fim/seibt/gitwrapper/repo/Repository.java
index 0de27619547e923f5c4bc7a9624c874fac05cadf..5fbf4e8073e8ba15969a0c8f41181b9880b53fb7 100644
--- a/src/de/uni_passau/fim/seibt/gitwrapper/repo/Repository.java
+++ b/src/de/uni_passau/fim/seibt/gitwrapper/repo/Repository.java
@@ -1,5 +1,8 @@
 package de.uni_passau.fim.seibt.gitwrapper.repo;
 
+import de.uni_passau.fim.seibt.gitwrapper.process.ProcessExecutor.ExecRes;
+import org.apache.commons.io.FileUtils;
+
 import java.io.File;
 import java.io.IOException;
 import java.nio.file.Path;
@@ -7,24 +10,12 @@ import java.nio.file.Paths;
 import java.time.Instant;
 import java.time.OffsetDateTime;
 import java.time.ZoneId;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.NoSuchElementException;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.Scanner;
+import java.util.*;
 import java.util.function.Function;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 import java.util.stream.Collectors;
 
-import de.uni_passau.fim.seibt.gitwrapper.process.ProcessExecutor.ExecRes;
-import org.apache.commons.io.FileUtils;
-
 /**
  * A git {@link Repository}.
  */
@@ -159,7 +150,7 @@ public class Repository {
     }
 
     /**
-     * Returns the merge commits in this repository.
+     * Returns a list of all merge commits in this repository.
      *
      * @return the merge commits
      */
@@ -195,7 +186,7 @@ public class Repository {
     /**
      * Returns the {@link Commit} currently pointed at by <code>HEAD</code>.
      *
-     * @return the <code>HEAD</code> commit
+     * @return the <code>HEAD</code> commit or an empty {@link Optional} if there was an error
      */
     public Optional<Commit> getCurrentHEAD() {
         Optional<ExecRes> revParse = git.exec(dir, "rev-parse", "HEAD");
@@ -219,6 +210,8 @@ public class Repository {
      * @param id
      *         the ID for the {@link Commit}
      * @return the {@link Commit}
+     *
+     * @see #getCommit(String)
      */
     Commit getCommitUnchecked(String id) {
         return commits.computeIfAbsent(id, theID -> new Commit(this, theID));
diff --git a/src/de/uni_passau/fim/seibt/gitwrapper/repo/Status.java b/src/de/uni_passau/fim/seibt/gitwrapper/repo/Status.java
index 6b4113dcbd97b65977e0144508898d0eb4da2ace..1249a8111bd7a7bbe7eaa83c2e42fae1586bdfc2 100644
--- a/src/de/uni_passau/fim/seibt/gitwrapper/repo/Status.java
+++ b/src/de/uni_passau/fim/seibt/gitwrapper/repo/Status.java
@@ -11,8 +11,19 @@ import java.util.regex.Pattern;
 public class Status {
     private static final Pattern STATUS_ENTRY = Pattern.compile("(.?.) (?:.*? )?(.*?)\0");
 
+    /**
+     * The commit, this {@link Status} is based on.
+     */
     public final String id;
+
+    /**
+     * A map of files which were changed since the last commit (with id {@link #id}) and their status codes.
+     */
     public final Map<Path, String> changed;
+
+    /**
+     * A map of files which are in an unmerged state and their status codes.
+     */
     public final Map<Path, String> unmerged;
 
     /**