diff --git a/coverage-tool/coverage-reporting/merge.sh b/coverage-tool/coverage-reporting/merge.sh
index e0ec69c..635b1f2 100755
--- a/coverage-tool/coverage-reporting/merge.sh
+++ b/coverage-tool/coverage-reporting/merge.sh
@@ -12,8 +12,7 @@
 # DESCRIPTION: Wrapper to merge intermediate json files and LCOV trace .info
 # files.
 #==============================================================================
-
-set +x
+set -x
 #################################################################
 # Function to manipulate json objects.
 # The json object properties can be accessed through "." separated
@@ -159,8 +158,7 @@
   if [ "$_type" = '"http"' ];then
     fname="$where.$extension" # Same filename as folder
     rm $where/$fname &>/dev/null || true
-    wget -o error.log $_origin -O $where/$fname || (
-            cat error.log && exit -1)
+    wget -nv $_origin -O $where/$fname || return -1
     cloned_file="$(get_abs_path $where/$fname)"
   elif [ "$_type" = '"bundle"' ];then
     # Check file exists at origin, i.e. was unbundled before
@@ -171,14 +169,14 @@
   elif [ "$_type" = '"file"' ];then
     if [[ "$_origin" = http* ]]; then
         echo "$_origin looks like 'http' rather than 'file' please check..."
-        exit -1
+        return -1
     fi
     fname="$where.$extension" # Same filename as folder
     cp -f $_origin $where/$fname
     cloned_file="$(get_abs_path $where/$fname)"
   else
     echo "Error unsupported file type:$_type.... Aborting."
-    exit -1
+    return -1
   fi
   if [ "$_compression" = "tar.xz" ];then
     cd $where
@@ -188,6 +186,7 @@
     cd -
   fi
   eval "${var_name}=${cloned_file}"
+  return 0
 }
 
 #####################################################################
@@ -207,6 +206,8 @@
   local json_string="$(cat $merge_configuration_file)"
   local config_json_file=""
   local info_file=""
+
+  #printf "\tReading from JSON data:\n\t\t%s" $json_string
   # Get files array
   local nf=$(get_json_object "$json_string" "-files")
   # Init target folder
@@ -218,8 +219,10 @@
     pushd $input_folder > /dev/null
     _file=$(get_json_object "$json_string" "files.$f")
     # The name of the folder is the 'id' value
-    folder=$(get_json_object "$_file" "*id")
-    echo "Getting files from project '$folder' into '$input_folder'..."
+    id=$(get_json_object "$_file" "*id")
+    tf_config=$(get_json_object "$_file" "*tf-configuration" "N/A")
+    folder=$id
+    printf "Getting files from configuration '$tf_config', build '$folder' into '$input_folder'...\n"
     mkdir -p $folder
     bundles=$(get_json_object "$_file" "bundles" None)
     if [ "$bundles" != "None" ];then
@@ -229,10 +232,11 @@
         get_file "$(get_json_object "$bundles" "$n")" $folder
       done
     fi
-    # Download/copy files and save their locations
-    get_file "$(get_json_object "$_file" "config")" $folder config_json_file
-    get_file "$(get_json_object "$_file" "info")" $folder info_file
-    info_files+=($info_file)
+    # Download/copy files and save their locations only if all are found
+    get_file "$(get_json_object "$_file" "config")" $folder config_json_file && \
+    get_file "$(get_json_object "$_file" "info")" $folder info_file && \
+    info_files+=($info_file) && json_files+=($config_json_file) && \
+    list_of_merged_builds+=($id)
     popd > /dev/null
   done
 }
@@ -244,15 +248,17 @@
 #   merged_json_file: Location and name for merged json scm sources
 #   LOCAL_WORKSPACE: Local workspace folder with the source code files
 #   generate_local: Flag to generate local lcov reports
+#   info_files: Array of locations and names of info files
+#   json_files: Array of locations and names of json files
 # Arguments:
 #   1: Location where reside json and info files
 # Outputs:
 #   Merged coverage file
-#   Merged json file
+#   Merged json configuration file
 ################################################################
 merge_files() {
-  local input_folder="${1:-$LCOV_FOLDER}"
-# Merge info and json files
+# Merge info and json configuration files
+  printf "\tFound report files from %d code coverage folders to be merged...\n" ${#info_files[@]}
   local lc=" "
   if [ -n "$LOCAL_WORKSPACE" ];then
     # Translation from info workspaces into local workspace
@@ -265,8 +271,8 @@
   # Getting the path of the merge.py must reside at the same
   # path as the merge.sh
   python3 ${DIR}/merge.py \
-      $(find $input_folder -name "*.info" -exec echo "-a {}" \;) \
-      $(find $input_folder -name "*.json" -exec echo "-j {}" \;) \
+      ${info_files[@]/#/-a } \
+      ${json_files[@]/#/-j } \
       -o $merged_coverage_file \
       -m $merged_json_file \
       $lc
@@ -284,6 +290,7 @@
 #   Lcov report files for each info file
 ################################################################
 generate_local_reports() {
+  printf "\tCreating local code coverage reports...\n"
   for i in ${!info_files[@]};
   do
     local info_file=${info_files[$i]}
@@ -303,23 +310,10 @@
 #   Prints to stdout script usage
 ################################################################
 usage() {
-  clear
-  echo "Usage:"
-  echo "merge -h              Display this help message."
-  echo "-j <JSON filename>    JSON configuration file (info and intermediate json filenames to be merged)."
-  echo "[-l <Report path>]    Coverage reports directory. Defaults to ./Coverage"
-  echo "[-w <Workspace path>] Workspace directory for source code files."
-  echo "[-o <Info filename>]  Merged info file. Defaults to ./merged_coverage.info"
-  echo "[-m <JSON filename>]  JSON merged SCM sources. Defaults to ./merged_scm.json"
-  echo "[-c]                  Flag to download/copy the source files from the JSON merged SCM into the workspace directory."
-  echo "[-g]                  Flag to generate local reports for each info/json instance."
-  echo "$help_message"
-}
-
 help_message=$(cat <<EOF
 
 # The script merging the info files (code coverage) and json SCM sources
-# (intermediate layer) needs a JSON configuration file with the following
+# (intermediate layer) needs a minimum JSON configuration file with the following
 # properties:
 # files: array of objects that describe the type of file/project to be
 # merged.
@@ -331,6 +325,8 @@
 #   info:  Info file
 #       type: Type of storage for the file. (http or file)
 #       origin: Location (url or folder) of the file
+#   <metadata>: Metadata that can be used for print more information related to
+#               each project [Optional]
 # Example:
 { "files" : [
                 {
@@ -344,7 +340,8 @@
                         {
                             "type": "http",
                             "origin": "<URL of info file for project 1>"
-                        }
+                        },
+                    "metadata": ....
                 },
                 {
                     "id": "<project 2>",
@@ -357,7 +354,8 @@
                         {
                             "type": "http",
                             "origin": "<URL of info file for project 2>"
-                        }
+                        },
+                      "metadata": ....
                 },
                 .
                 .
@@ -366,8 +364,21 @@
 }
 EOF
 )
+  clear || true
+  echo "Usage:"
+  echo "merge -h              Display this help message."
+  echo "-j <JSON filename>    JSON configuration file (info and intermediate json filenames to be merged)."
+  echo "[-l <Report path>]    Coverage reports directory. Defaults to ./Coverage"
+  echo "[-w <Workspace path>] Workspace directory for source code files."
+  echo "[-o <Info filename>]  Merged info file. Defaults to ./merged_coverage.info"
+  echo "[-m <JSON filename>]  JSON merged SCM sources. Defaults to ./merged_scm.json"
+  echo "[-c]                  Flag to download/copy the source files from the JSON merged SCM into the workspace directory."
+  echo "[-g]                  Flag to generate local reports for each info/json instance."
+  echo "$help_message"
+}
 
-clear
+
+[ ${-/x} != ${-} ] && TRACING=true || TRACING=false
 LOCAL_WORKSPACE=""
 CLONE_SOURCES=false
 merge_configuration_file=""
@@ -377,7 +388,11 @@
 # File name for merge coverage info
 merged_coverage_file="./merged_coverage.info"
 merged_json_file="./merged_scm.json"
+# File name to pass variables to calling script
+variables_file="./variables.sh"
 info_files=() # Array of info files
+json_files=() # Array of configuration json files
+list_of_merged_builds=()
 while getopts ":hj:o:l:w:i:cm:g" opt; do
   case ${opt} in
     h )
@@ -385,7 +400,7 @@
       exit 0
       ;;
     w )
-      LOCAL_WORKSPACE=$(cd $OPTARG; pwd)
+      LOCAL_WORKSPACE=$(cd $OPTARG  &>/dev/null || true; pwd)
       ;;
     c )
       CLONE_SOURCES=true
@@ -405,6 +420,9 @@
     g )
       generate_local=true
       ;;
+    x )
+      variables_file=$OPTARG
+      ;;
     \? )
       echo "Invalid option: $OPTARG" 1>&2
       usage
@@ -440,9 +458,14 @@
     clone_repos $merged_json_file
 fi
 
-# Generate branch coverage report
+# Generate merged coverage report
+merged_status=true
 genhtml --branch-coverage $merged_coverage_file \
     --output-directory $LCOV_FOLDER
+if [ $? -ne 0 ];then
+    merged_status=false
+    echo "ERROR: Cannot merge coverage reports"
+fi
 
 if [ "$generate_local" = true ];then
   generate_local_reports
