diff --git a/jira/bin/jira-search.sh b/jira/bin/jira-search.sh
index 751edb6..9015a38 100755
--- a/jira/bin/jira-search.sh
+++ b/jira/bin/jira-search.sh
@@ -539,10 +539,6 @@
 
 while [ $# -gt 0 ]; do
 
-#    if [ ${#suffix0[@]} -gt 0 ]; then
-#        suffix0+=('AND')
-#    fi
-
     arg="$1"; shift
     banner "ARG=[$arg], \$@=[$@]"
     
@@ -555,31 +551,21 @@
         '--help')    usage; exit 0                      ;;
         '--help-'*)  help_with "${arg/--help-/}"        ;;
         '--usage-'*) help_usage_show "${arg/--usage-/}" ;;
+ 
+        *'-is-empty'*)
+            is_switch_valid__is_empty "$arg"
 
-        '--'*'-is-empty')
             declare -a args=()
-            args+=('--is-empty')
+            arg="${arg:2}"               # remove prefix --
+            arg="${arg%-is-empty}"       # remove suffix token-name
 
-            arg="${arg:2}"           # remove prefix --
-            arg="${arg%-is-empty}"   # remove suffix token-name
-            args+=("$arg")
+            ## Rewrite switch to bypass is-empty and match --required
+            args+=("--${arg}+is-empty")  # ARGV: gen JCL tokens
             [[ $# -gt 0 ]] && { args+=("$@"); }
 
-            set -- "${args[@]}"
+            set -- "${args[@]}" # --is-empty resolved
             ;;
-        
-        '--is-empty')
-            declare val="$1"; shift
-            declare -a valid=()
-            valid+=('label')
 
-            if [[ " ${valid[@]} " =~ " ${val} " ]]; then
-                is_empty+=("$val")
-            else
-                error "Detected invalid --is-empty switch [$arg]"
-            fi
-        ;;
-        
         ##-----------------##
         ##---]  MODES  [---##
         ##-----------------##
@@ -703,7 +689,7 @@
             esac
             ;;
 
-        '--resolved-'*)
+        '--resolved'*) # [-+]
             # function get_jql_reasons()
             case "$arg" in
 
@@ -711,7 +697,10 @@
                 *end) declare -g resolved_end="$1";   shift ;;
 
                 *not-empty) declare -g resolved_not_empty="$1" ;;
-                *empty) declare -g resolved_is_empty="$1"  ;;
+                *'empty')
+                    banner "Detected [$arg]"
+                    declare -g resolved_is_empty="$1"
+                    ;;
 
                 *excl)
                     [[ ! -v resolved_excl ]] && { declare -g -a resolved_excl=(); }
@@ -823,16 +812,19 @@
 [[ -v components ]] && { do_components components suffix0; }
 do_labels labels_incl labels_excl suffix0
 do_text  text                     suffix0
-do_resolved                       suffix0
+
+get_jcl_resolved                  suffix0
+    # do_resolved                       suffix0
+
 do_fixversion                     suffix0
 
-declare -p suffix0
-
-if [[ -v getopt_argv_AND ]]; then
-    query="$(join_by 'AND' "${suffix0[0]}")"
-elif [[ -v getopt_argv_OR ]]; then
+declare -p getopt_argv_any_OR
+if [[ -v getopt_argv_any_OR ]]; then
     query="$(join_by 'OR' "${suffix0[0]}")"
+elif [[ -v getopt_argv_any_AND ]]; then
+    query="$(join_by 'AND' "${suffix0[0]}")"
 else
+#    query="$(join_by 'OR' "${suffix0[0]}")"
     error "Ambiguous query [argv needs: --and or --or]"
 fi
 
