diff --git a/tools/test/bin/onos-cell b/tools/test/bin/onos-cell
index 275ad23..45a68b9 100755
--- a/tools/test/bin/onos-cell
+++ b/tools/test/bin/onos-cell
@@ -1,59 +1,9 @@
 #!/bin/bash
 # -----------------------------------------------------------------------------
-# Applies the settings in the specified cell file or lists current cell
-# definition if no cell file is given.
+# List available ONOS cells configuration.
 # -----------------------------------------------------------------------------
 
-# Sets the primary instance to the specified instance number.
-function setPrimaryInstance {
-    export OCI=$(env | egrep "OC[0-9]+" | sort | egrep OC${1:-1} | cut -d= -f2)
-    echo $OCI
-}
+[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
+. $ONOS_ROOT/tools/dev/bash_profile
 
-cell=$1
-case "$cell" in
-"borrow")
-    aux="/tmp/cell-$$"
-    curl -sS -X POST "http://$CELL_WARDEN:4321/?duration=${2:-0}&user=${3:-$(id -un)}" \
-        -d "$(cat ~/.ssh/id_rsa.pub)" > $aux
-    . $aux
-    rm -f $aux
-    export ONOS_INSTANCES=$(env | grep 'OC[0-9]*=' | sort | cut -d= -f2)
-    setPrimaryInstance 1 >/dev/null
-    onos-verify-cell
-    ;;
-"return")
-    curl -sS -X DELETE "http://$CELL_WARDEN:4321/?user=${2:-$(id -un)}"
-    unset ONOS_CELL ONOS_NIC ONOS_IP ONOS_APPS ONOS_BOOT_FEATURES
-    unset OCI OCN OCT ONOS_INSTANCES ONOS_FEATURES
-    unset $(env | sed -n 's:\(^OC[0-9]\{1,\}\)=.*:\1 :g p')
-    ;;
-
-"status")
-    curl -sS "http://$CELL_WARDEN:4321/" | sort
-    ;;
-
-"")
-    env | egrep "ONOS_CELL"
-    env | egrep "OCI"
-    env | egrep "OC[0-9]+" | sort
-    env | egrep "OC[NT]"
-    env | egrep "ONOS_" | egrep -v 'ONOS_ROOT|ONOS_CELL|ONOS_INSTANCES' | sort
-    ;;
-
-*)
-    [ ! -f $ONOS_ROOT/tools/test/cells/$1 ] && \
-        echo "No such cell: $1" >&2 && return 1
-    unset ONOS_CELL ONOS_NIC ONOS_IP ONOS_APPS ONOS_BOOT_FEATURES
-    unset OCI OCN OCT ONOS_INSTANCES ONOS_FEATURES
-    unset $(env | sed -n 's:\(^OC[0-9]\{1,\}\)=.*:\1 :g p')
-    export ONOS_USER=${ONOS_USER:-sdn}
-    export ONOS_GROUP=${ONOS_GROUP:-sdn}
-    export ONOS_WEB_USER=onos
-    export ONOS_WEB_PASS=rocks
-    export ONOS_CELL=$1
-    . $ONOS_ROOT/tools/test/cells/$1
-    export ONOS_INSTANCES=$(env | grep 'OC[0-9]*=' | sort | cut -d= -f2)
-    setPrimaryInstance 1 >/dev/null
-    onos-cell
-esac
\ No newline at end of file
+cell "$@"
\ No newline at end of file
