diff --git a/build/build_nexus_blob.sh b/build/build_nexus_blob.sh
index 131c8d7..09ed896 100755
--- a/build/build_nexus_blob.sh
+++ b/build/build_nexus_blob.sh
@@ -21,9 +21,10 @@
 ### This script prepares Nexus repositories data blobs for ONAP
 
 ## The script requires following dependencies are installed: nodejs, jq, docker
-## All required resources are expected in the upper directory
-## created during download procedure as DATA_DIR
-## All lists used must be in project data_lists directory
+## All required resources are expected in the upper directory created during
+## download procedure as DATA_DIR or in the directory given as --input-directory
+## All lists used must be in project data_lists directory or in the directory given
+## as --resource-list-directory
 
 # Fail fast settings
 set -e
@@ -34,18 +35,6 @@
 # Log everything
 exec &> >(tee -a "${SCRIPT_LOG}")
 
-usage () {
-    echo "  This script is preparing Nexus data blob from docker images and npm and pypi packages"
-    echo "      Usage:"
-    echo "        ./$(basename $0) <project version> [<target>]"
-    echo "      "
-    echo "      Example: ./$(basename $0) onap_3.0.1 /root/nexus_data"
-    echo "      "
-    echo "      Dependencies: nodejs, jq, docker"
-    echo "      "
-    exit 1
-}
-
 # Nexus repository location
 NEXUS_DOMAIN="nexus"
 NEXUS_PORT="8081"
@@ -60,25 +49,54 @@
 NEXUS_PASSWORD=admin123
 NEXUS_EMAIL=admin@example.org
 
-if [ "${1}" == "-h" ] || [ "${1}" == "--help"  ] || [ $# -eq 0 ]; then
-    usage
-else
-    TAG="${1}"
-fi
-
 # Setting paths
 LOCAL_PATH="$(readlink -f $(dirname ${0}))"
+
+#Defaults
 DATA_DIR="$(realpath ${LOCAL_PATH}/../../resources)"
-
-if [ -z "${2}" ]; then
-    NEXUS_DATA_DIR="${DATA_DIR}/nexus_data"
-else
-    NEXUS_DATA_DIR="${2}"
-fi
-
-# Setup directory with resources lists
+NEXUS_DATA_DIR="${DATA_DIR}/nexus_data"
 LISTS_DIR="${LOCAL_PATH}/data_lists"
 
+usage () {
+    echo "   Example usage: build_nexus_blob.sh -t <tag> --input-directory </path/to/downloaded/files/dir>  --output-directory
+           </path/to/output/dir> --resource-list-directory </path/to/dir/with/resource/list>
+
+     -t | --tag release tag, taken from available on git or placed by data generating script (mandatory) must fallow scheme onap_<semver>
+     -i | --input-directory directory containing file needed to create nexus blob. The structure of this directory must organized as described in build guide
+     -o | --output-directory
+    -rl | --resource-list-directory directory with files containing docker, pypi and rpm lists
+    "
+    exit 1
+}
+
+while [ "$1" != "" ]; do
+    case $1 in
+        -t | --tag )                       shift
+                                           TAG=$1
+                                           ;;
+        -i | --input-directory )           shift
+                                           DATA_DIR=$1
+                                           ;;
+        -o | --output-directory )          shift
+                                           NEXUS_DATA_DIR=$1
+                                           ;;
+        -rl | --resource-list-directory )  shift
+                                           LISTS_DIR=$1
+                                           ;;
+        -h | --help )                      usage
+                                           ;;
+        *)                                 usage
+    esac
+    shift
+done
+
+
+# exit if no tag given
+if [ -z ${TAG} ]; then
+    usage
+    exit 1
+fi
+
 # Setup directories with resources for docker, npm and pypi
 NXS_SRC_DOCKER_IMG_DIR="${DATA_DIR}/offline_data/docker_images_for_nexus"
 NXS_SRC_NPM_DIR="${DATA_DIR}/offline_data/npm_tar"
@@ -284,7 +302,7 @@
     if [[ ${IMAGE} != *"/"* ]]; then
         PUSH="${DOCKER_REGISTRY}/library/${IMAGE}"
     elif [[ ${IMAGE} == *"${DEFAULT_REGISTRY}"* ]]; then
-	if [[ ${IMAGE} == *"/"*"/"* ]]; then
+        if [[ ${IMAGE} == *"/"*"/"* ]]; then
             PUSH="$(sed 's/'"${DEFAULT_REGISTRY}"'/'"${DOCKER_REGISTRY}"'/' <<< ${IMAGE})"
         else
             PUSH="$(sed 's/'"${DEFAULT_REGISTRY}"'/'"${DOCKER_REGISTRY}"'\/library/' <<< ${IMAGE})"
@@ -322,3 +340,4 @@
 
 echo "Nexus blob is built"
 exit 0
+
