diff --git a/README.md b/README.md
index cd2c351..ea49cba 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,3 @@
 Aries Containers - this repository contains API and implementations of the Apache Aries Container Management subcomponent.
+
+For more information and documentation see the Apache Aries website: http://aries.apache.org/modules/containers.html
diff --git a/containers-marathon/src/main/java/org/apache/aries/containers/marathon/impl/MarathonServiceManager.java b/containers-marathon/src/main/java/org/apache/aries/containers/marathon/impl/MarathonServiceManager.java
index f39ef61..fa3998b 100644
--- a/containers-marathon/src/main/java/org/apache/aries/containers/marathon/impl/MarathonServiceManager.java
+++ b/containers-marathon/src/main/java/org/apache/aries/containers/marathon/impl/MarathonServiceManager.java
@@ -25,9 +25,9 @@
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.aries.containers.ServiceManager;
 import org.apache.aries.containers.Service;
 import org.apache.aries.containers.ServiceConfig;
+import org.apache.aries.containers.ServiceManager;
 
 import mesosphere.dcos.client.DCOSClient;
 import mesosphere.dcos.client.model.DCOSAuthCredentials;
@@ -44,10 +44,23 @@
 
     private final Marathon marathonClient;
 
+    /**
+     * Create the Marathon Service Manager.
+     *
+     * @param marathonURL The Marathon URL
+     */
     public MarathonServiceManager(String marathonURL) {
         marathonClient = MarathonClient.getInstance(marathonURL);
     }
 
+    /**
+     * Create the Marathon Service Manager for use with DC/OS.
+     *
+     * @param marathonURL The Marathon URL.
+     * @param dcosUser The DCOS user or service-user.
+     * @param passToken The password or token to use.
+     * @param serviceAcct {@code true} if this is a service account {@code false} if this is a plain user.
+     */
     public MarathonServiceManager(String marathonURL, String dcosUser, String passToken, boolean serviceAcct) {
         DCOSAuthCredentials authCredentials;
         if (serviceAcct) {
