diff --git a/tools/dev/bash_profile b/tools/dev/bash_profile
index 5e161cc..f39c2ce 100644
--- a/tools/dev/bash_profile
+++ b/tools/dev/bash_profile
@@ -148,41 +148,41 @@
     spy "$@" | cut -c7-11 | xargs kill
 }
 
-# Edit a cell file by providing a cell name. Opens the cell file in $EDITOR.
-function vicell() {
-  local apply=false
-  local create=false
-  local cdf=""
-  local cpath="${ONOS_ROOT}/tools/test/cells/"
+# Edit a cell file by providing a cell name; opens the cell file in $EDITOR.
+function vicell {
+    local apply=false
+    local create=false
+    local cdf=""
+    local cpath="${ONOS_ROOT}/tools/test/cells/"
 
-  if [ -z "$1" ] || [ "$1" = "-h" ] ; then
-    printf "usage: vicell [file] [options]\n\noptions:\n"
-    printf "\t-a: apply the cell after editing\n"
-    printf "\t-e: [editor] set EDITOR to [editor] (default *vi*)\n"
-    printf "\t-c: create cell file if none exist\n\n"
-    return 1
-  fi
+    if [ -z "$1" ] || [ "$1" = "-h" ] ; then
+        printf "usage: vicell [file] [options]\n\noptions:\n"
+        printf "\t-a: apply the cell after editing\n"
+        printf "\t-e: [editor] set EDITOR to [editor] (default *vi*)\n"
+        printf "\t-c: create cell file if none exist\n\n"
+        return 1
+    fi
 
-  while [ $# -gt 0 ]; do
-    case "$1" in
-      -a) apply=true ;;
-      -e) EDITOR=$2; shift ;;
-      -c) create=true ;;
-      *) cdf="$1" ;;
-    esac
-    shift
-  done
+    while [ $# -gt 0 ]; do
+        case "$1" in
+            -a) apply=true ;;
+            -e) EDITOR=$2; shift ;;
+            -c) create=true ;;
+            *) cdf="$1" ;;
+        esac
+        shift
+    done
 
-  if [ ! -e "${cpath}${cdf}" ] && [ "$create" = "false" ]; then
-       printf "${cdf} : no such cell\n" && return 1
-  fi
+    if [ ! -e "${cpath}${cdf}" ] && [ "$create" = "false" ]; then
+        printf "${cdf} : no such cell\n" && return 1
+    fi
 
-  if [ -z "${EDITOR}" ] || [ -x "$(which ${EDITOR})" ]; then
-    unset EDITOR && vi ${cpath}${cdf}
-  else
-    $EDITOR ${cpath}${cdf}
-  fi
-  ($apply) && cell ${cdf}
+    if [ -z "${EDITOR}" ] || [ -x "$(which ${EDITOR})" ]; then
+        unset EDITOR && vi ${cpath}${cdf}
+    else
+        $EDITOR ${cpath}${cdf}
+    fi
+    ($apply) && cell ${cdf}
 }
 
 # autocomplete for certain utilities
diff --git a/tools/test/bin/ogroup-opts b/tools/test/bin/ogroup-opts
index 41842bd..f02b7a8 100644
--- a/tools/test/bin/ogroup-opts
+++ b/tools/test/bin/ogroup-opts
@@ -44,7 +44,7 @@
   fi
 }
 
-complete -F _cell-opts cell
+complete -F _cell-opts cell vicell
 
 
 # Tab completion settings for onos-create-app.
diff --git a/tools/test/bin/onos-service b/tools/test/bin/onos-service
index cc69491..35764e6 100755
--- a/tools/test/bin/onos-service
+++ b/tools/test/bin/onos-service
@@ -34,7 +34,6 @@
 
 case $2 in 
     start|stop|restart|status)
-
         # Select the target
         if [ "${1}" = "--cell" ]; then
             nodes=$(env | sort | egrep "OC[0-9]+" | cut -d= -f2)
