diff --git a/l3d b/l3d
index 7aa4d26df891615e0aa5fff5dd290e5b0ab03e02..50357a6952bb42db6a68a860a66bb6fe448588c9 100755
--- a/l3d
+++ b/l3d
@@ -1,53 +1,36 @@
 #!/usr/bin/env bash
 
-if [[ "$1" == "help" ]]; then
+function help {
   echo "L3D - LakeDropsDrupalDev"
   echo "========================="
   echo ""
   echo "Version: 1.3.0"
   echo "Info and support: https://gitlab.lakedrops.com/docker/l3d"
-  exit 0
-fi
+  echo ""
+  echo "Usage:"
+  echo "  l3d [ help | selfupdate | update | PROJECTNAME]"
+  echo ""
+  echo ""
+}
 
-if [[ "$1" == "selfupdate" ]]; then
+function selfupdate {
   DEST=$(which l3d)
   WGET=$(which wget)
   CURL=$(which curl)
   if [[ -n "$WGET" ]]; then
-    sudo wget -O $DEST https://gitlab.lakedrops.com/docker/l3d/raw/master/l3d
+    sudo wget -O $DEST https://gitlab.lakedrops.com/docker/l3d/raw/master/l3d > /dev/null 2>&1
   elif [[ -n "$CURL" ]]; then
-    sudo curl -o $DEST https://gitlab.lakedrops.com/docker/l3d/raw/master/l3d
+    sudo curl -o $DEST https://gitlab.lakedrops.com/docker/l3d/raw/master/l3d > /dev/null 2>&1
   else
     echo "Could't find wget or curl to perform the update!"
     exit 1
   fi
   sudo chmod +x $DEST
   echo "Self update succeeded!"
-  exit 0
-fi
-
-export $(cat .env | xargs)
-if [[ "${PHP_VERSION}" == "" ]]; then
-  while true; do
-      read -p "Which PHP version is your project using? " PHP_VERSION
-      case ${PHP_VERSION} in
-          7.0 ) break;;
-          7.1 ) break;;
-          7.2 ) break;;
-
-          * ) echo "Version not supported.";;
-      esac
-  done
-  echo "PHP_VERSION=${PHP_VERSION}" >>.env
-fi
-if [[ "${COMPOSE_PROJECT_NAME}" == "" ]]; then
-  read -p "Name your project (used as subdomain): " COMPOSE_PROJECT_NAME
-  echo "COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME}" >>.env
-fi
-
-ID=$(docker container ls -q -f name=${COMPOSE_PROJECT_NAME}_l3d)
+}
 
-if [[ "$1" == "update" ]]; then
+function update {
+  getenv
   IMAGEID=$(docker image ls -q registry.lakedrops.com/docker/l3d:php-${PHP_VERSION})
   echo "Updating the image ..."
   STATUS=$(docker pull registry.lakedrops.com/docker/l3d:php-${PHP_VERSION})
@@ -68,23 +51,81 @@ if [[ "$1" == "update" ]]; then
       done
     fi
   fi
-fi
+}
+
+function getenv {
+  if [[ -f ".env" ]]; then
+    export $(cat .env | xargs) > /dev/null 2>&1
+  fi
+  if [[ "${PHP_VERSION}" == "" ]]; then
+    while true; do
+        read -p "Which PHP version is your project using? " PHP_VERSION
+        case ${PHP_VERSION} in
+            7.0 ) break;;
+            7.1 ) break;;
+            7.2 ) break;;
+
+            * ) echo "Version not supported.";;
+        esac
+    done
+    echo "PHP_VERSION=${PHP_VERSION}" >>.env
+  fi
+  if [[ "${COMPOSE_PROJECT_NAME}" == "" ]]; then
+    read -p "Name your project (used as subdomain): " COMPOSE_PROJECT_NAME
+    echo "COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME}" >>.env
+  fi
+}
 
-if [[ -n "$ID" ]]; then
-  docker start ${COMPOSE_PROJECT_NAME}_l3d
-else
-  docker run --name ${COMPOSE_PROJECT_NAME}_l3d -dt \
-    --hostname ${COMPOSE_PROJECT_NAME}-l3d \
-    --env COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME} \
-    --env SSH_AUTH_SOCK=/ssh-agent \
-    --env-file ${PWD}/.env \
-    --volume /var/run/docker.sock:/var/run/docker.sock \
-    --volume ${PWD}:/drupal \
-    --volume ${SSH_AUTH_SOCK}:/ssh-agent \
-    --volume ${HOME}/.traefik:/root/.traefik \
-    --volume ${HOME}/.gitconfig:/root/.gitconfig \
-    --workdir /drupal \
-    --restart unless-stopped \
-    registry.lakedrops.com/docker/l3d:php-${PHP_VERSION}
-fi
-docker exec -it ${COMPOSE_PROJECT_NAME}_l3d /usr/bin/fish
+function start {
+  if [[ -n "${COMPOSE_PROJECT_NAME}" ]]; then
+    ID=$(docker container ls -q -f name=${COMPOSE_PROJECT_NAME}_l3d)
+
+    if [[ -n "$ID" ]]; then
+      docker start ${COMPOSE_PROJECT_NAME}_l3d
+    else
+      docker run --name ${COMPOSE_PROJECT_NAME}_l3d -dt \
+        --hostname ${COMPOSE_PROJECT_NAME}-l3d \
+        --env COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME} \
+        --env SSH_AUTH_SOCK=/ssh-agent \
+        --env-file ${PWD}/.env \
+        --volume /var/run/docker.sock:/var/run/docker.sock \
+        --volume ${PWD}:/drupal \
+        --volume ${SSH_AUTH_SOCK}:/ssh-agent \
+        --volume ${HOME}/.traefik:/root/.traefik \
+        --volume ${HOME}/.gitconfig:/root/.gitconfig \
+        --workdir /drupal \
+        --restart unless-stopped \
+        registry.lakedrops.com/docker/l3d:php-${PHP_VERSION}
+    fi
+    docker exec -it ${COMPOSE_PROJECT_NAME}_l3d /usr/bin/fish
+  fi
+}
+
+COMPOSE_PROJECT_NAME=
+case $1 in
+
+  help )
+    help
+    ;;
+
+  selfupdate )
+    selfupdate
+    ;;
+
+  update )
+    update
+    start
+    ;;
+
+  * )
+    if [[ -n "$1" ]]; then
+      ID=$(docker container ls -q -f name=$1_l3d)
+      if [[ -n "${ID}" ]]; then
+        COMPOSE_PROJECT_NAME=$1
+      fi
+    else
+      getenv
+    fi
+    start
+    ;;
+esac