diff --git a/jira/jira-search.sh b/jira/bin/jira-search.sh
similarity index 93%
rename from jira/jira-search.sh
rename to jira/bin/jira-search.sh
index 31c22ce..97b8cc2 100755
--- a/jira/jira-search.sh
+++ b/jira/bin/jira-search.sh
@@ -3,6 +3,21 @@
 ## Intent: Construct a jira ticket query with attributes
 ## --------------------------------------------------------------------
 
+{ # loader
+    declare pgm=''
+    pgm="$(realpath --canonicalize-existing "$0")"
+
+    declare root=''
+    root="${pgm%%/jira/bin/jira-search.sh}"
+    source "$root/lf/onf-common/common.sh" '--common-args-begin--'
+
+    pgm_lib="${root}/jira/jira-search"
+    readonly pgm_lib
+
+    pgm_bin="${root}/bin"
+    readonly pgm_bin
+}
+
 # set -euo pipefail
 #source ~/.sandbox/trainlab-common/common.sh '--common-args-begin--'
 
@@ -22,9 +37,12 @@
 declare -g -a projects=()
 
 path="$(realpath $0 --canonicalize-existing)"
-source "${path%\.sh}/utils.sh"
-source "$pgmlib/fixversion.sh"
-source "$pgmlib/resolved.sh"
+# source "${path%\.sh}/utils.sh"
+source "${pgm_lib}/utils.sh"
+#source "$pgmlib/fixversion.sh"
+#source "$pgmlib/resolved.sh"
+source "${pgm_lib}/fixversion.sh"
+source "${pgm_lib}/resolved.sh"
 
 ## --------------------------------------------------------------------
 ## --------------------------------------------------------------------
@@ -55,7 +73,7 @@
 function conjunction()
 {
     return
-    
+
     local -n ref=$1; shift
     [[ $# -gt 0 ]] && { local literal="$1"; shift; }
 
@@ -96,7 +114,7 @@
     declare -n ans=$1; shift
 
     # [ -z ${args+word} ] && { args=(); }
-    
+
     if [[ ${#args[@]} -gt 0 ]]; then
 
         local modifier
@@ -270,7 +288,10 @@
     do
         _tmp+=("$val" 'AND')
     done
-    unset _tmp[-1]
+
+    if [[ ${#_tmp[@]} -gt 0 ]]; then
+        unset _tmp[-1]
+    fi
 
     ## -----------------------
     ## Massage with html codes
@@ -304,10 +325,12 @@
 Usage: $0 VOL-xxxx
   --debug       Enable script debug mode
   --dry-run     Simulate
+  --todo        Display future enhancements
 
   VOL-{xxxx}    View a jira ticket by ID
 
 [SERVER]
+  --server {cord,onf}
   --onf         jira.opennetworking.org (default)
   --opencord    jira.opencord.org
 
@@ -430,8 +453,17 @@
         ##------------------##
         ##---]  SERVER  [---##
         ##------------------##
-        -*onf) declare server='jira.opennetworking.org'; error "FOUND --onf" ;;
-        -*cord) declare server='jira.opencord.org' ;;
+        --serv*)
+            arg="$1"; shift
+            case "$arg" in
+                *cord*) server='jira.opencord.org' ;;
+                 *onf*) server='jira.opennetworking.org' ;;
+                 *) error "--server [$arg] expected opencord or onf" ;;
+            esac
+            ;;
+
+         --onf) declare server='jira.opennetworking.org' ;;
+        --cord) declare server='jira.opencord.org'     ;;
 
         ##---------------------##
         ##---]  SEARCH-BY  [---##
@@ -474,6 +506,7 @@
             ;;
 
         --all) set -- '--resolved-is-none' "$@" ;; # alias: --[un-]resolved
+        --todo) source "${pgm_lib}/todo.sh" ;;
 
         --proj*) projects+=("$1"); shift ;;
 
@@ -583,6 +616,11 @@
     esac
 done
 
+## --------------
+## Required check
+## --------------
+[[ ! -v server ]] && { error "--server={cord,onf} is required"; }
+
 ## ----------------------
 ## Construct query filter
 ## ----------------------
diff --git a/jira/resolved.sh b/jira/bin/resolved.sh
similarity index 100%
rename from jira/resolved.sh
rename to jira/bin/resolved.sh
diff --git a/jira/jira-search/todo.sh b/jira/jira-search/todo.sh
new file mode 100644
index 0000000..c083b77
--- /dev/null
+++ b/jira/jira-search/todo.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+function __anonymous()
+{
+    cat <<EOT
+
+** -----------------------------------------------------------------------
+** [TODO]
+** -----------------------------------------------------------------------
+    o --component bbsim --component ci-management
+      # Component not working unless project passed
+    project = VOL AND component in (bbsim, bbsim-sadis-server, ci-management)
+EOT
+    return
+}
+
+__anonymous
+unset __anonymous
+
+: # ($?==0) for source script return
+# [EOF]
