Index: Makefile
==================================================================
--- Makefile
+++ Makefile
@@ -27,11 +27,11 @@
 all : $(PREFIX)/bin/.$(ARCHSTR) mtest
 # add dboard mtut and tcmt back later
 
 # module source files
 MSRCFILES = autoload.scm dbi.scm ducttape-lib.scm pkts.scm stml2.scm	\
-            cookie.scm mutils.scm mtargs.scm apimod.scm			\
+            cookie.scm mutils.scm mtargs.scm apimod.scm	ulex.scm	\
             configfmod.scm commonmod.scm dbmod.scm rmtmod.scm		\
             debugprint.scm mtver.scm csv-xml.scm servermod.scm		\
             hostinfo.scm adjutant.scm processmod.scm testsmod.scm	\
             itemsmod.scm keysmod.scm mtmod.scm rmtmod.scm		\
             tasksmod.scm pgdb.scm launchmod.scm runsmod.scm		\

Index: megatest.scm
==================================================================
--- megatest.scm
+++ megatest.scm
@@ -505,15 +505,15 @@
 (define (main)
   (make-and-init-bigdata)
 
   
   ;; set up the functions in http transport
-  (hash-table-set! *http-functions* 'api:process-request          api:process-request)
-  (hash-table-set! *http-functions* 'http-transport:main-page     http-transport:main-page)
-  (hash-table-set! *http-functions* 'http-transport:show-jquery   http-transport:show-jquery)
-  (hash-table-set! *http-functions* 'http-transport:html-test-log http-transport:html-test-log)
-  (hash-table-set! *http-functions* 'http-transport:html-dboard   http-transport:html-dboard)
+;;   (hash-table-set! *http-functions* 'api:process-request          api:process-request)
+;;   (hash-table-set! *http-functions* 'http-transport:main-page     http-transport:main-page)
+;;   (hash-table-set! *http-functions* 'http-transport:show-jquery   http-transport:show-jquery)
+;;   (hash-table-set! *http-functions* 'http-transport:html-test-log http-transport:html-test-log)
+;;   (hash-table-set! *http-functions* 'http-transport:html-dboard   http-transport:html-dboard)
   
 ;; load the ~/.megatestrc file, put (use trace)(trace-call-sites #t)(trace function-you-want-to-trace) in this file
 ;;
 (let ((debugcontrolf (conc (get-environment-variable "HOME") "/.megatestrc")))
   (if (common:file-exists? debugcontrolf)

Index: rmtmod.scm
==================================================================
--- rmtmod.scm
+++ rmtmod.scm
@@ -128,10 +128,12 @@
   (rep  #f)
   (dbfile #f)
   (api-url #f)
   (api-uri #f)
   (api-req #f)
+  (uconn   #f)
+  (mode    #f)
   (status 'starting)
   (trynum 0) ;; count the number of ports we've tried
   ) 
 
 (define (servdat->url sdat)
@@ -179,12 +181,15 @@
 ;;
 (define (conndat->uri conn entrypoint)
   (conc "http://"(conndat-ipaddr conn)":"(conndat-port conn)"/"entrypoint))
 
 ;; set up the api proc, seems like there should be a better place for this?
+;;
+;; IS THIS NEEDED ANYMORE? TODO - REMOVE IF POSSIBLE
+;;
 (define api-proc (make-parameter conc))
-(api-proc api:process-request)
+(api-proc api:execute-requests)
 
 ;; do we have a connection to apath dbname and
 ;; is it not expired? then return it
 ;;
 ;; else setup a connection
@@ -231,20 +236,20 @@
 			       (begin
 				 (thread-sleep! 1)
 				 (loop))
 			       (begin
 				 (servdat-mode-set! *server-info* 'non-db)
-				 (server-uconn *server-info*))))))))
+				 (servdat-uconn *server-info*))))))))
     (cond
      ((and conn                                             ;; conn is NOT a socket, just saying ...
 	   (< (current-seconds) (conndat-expires conn)))
       #t) ;; we are current and good to go - we'll deal elsewhere with a server that was killed or died 
      ((and conn
 	   (>= (current-seconds)(conndat-expires conn)))
       (debug:print-info 0 *default-log-port* "connection to "fullpath" server expired. Reconnecting.")
-      (if (conndat-socket conn)
-	  (nng-close! (conndat-socket conn)))
+      #;(if (conndat-socket conn)
+	  (nng-close! (conndat-socket conn))) ;; TODO - close the ulex server here?
       (hash-table-set! conns fullpath #f) ;; clean up
       (rmt:open-main-connection remdat apath))
      (else
       ;; Below we will find or create and connect to main
       (let* ((dbname         (db:run-id->dbname #f))
@@ -270,11 +275,11 @@
 		   (new-the-srv (make-conndat
 				 apath:   apath
 				 dbname:  dbname
 				 fullname: fullpath
 				 hostport: srv-addr
-				 socket: (open-nn-connection srv-addr)
+				 ;; socket: (open-nn-connection srv-addr)  - TODO - open ulex connection?
 				 ipaddr: ipaddr
 				 port: port
 				 srvpkt: the-srv
 				 srvkey: srvkey ;; generated by rmt:get-signature on the server side
 				 lastmsg: (current-seconds)
@@ -300,11 +305,11 @@
      ((or (not mconn) ;; no channel open to main?
 	  (< (conndat-expires mconn)(+ (current-seconds) 2))) ;; restablish connection if less than 2 seconds on the lease
       (if mconn ;; previously opened - clean up NB// consolidate this with the similar code in open main above
 	  (begin
 	    (debug:print-info 0 *default-log-port* "Clearing out connection to main that has expired.")
-	    (nng-close! (conndat-socket mconn))
+	    ;; (nng-close! (conndat-socket mconn)) ;; TODO - close the ulex server/listener here?
 	    (hash-table-set! conns fullname #f)))
       (rmt:open-main-connection remdat apath)
       (rmt:general-open-connection remdat apath mdbname))
      ((not (rmt:get-conn remdat apath dbname))                 ;; no channel open to dbname?     
       (let* ((res (rmt:send-receive-real remdat apath mdbname 'get-server `(,apath ,dbname))))
@@ -332,11 +337,11 @@
 				    fullname
 				    (make-conndat
 				     apath: apath
 				     dbname: dbname
 				     hostport: (conc host":"port)
-				     socket: (open-nn-connection (conc host":"port))
+				     ;; socket: (open-nn-connection (conc host":"port)) ;; TODO - open ulex connection?
 				     ipaddr: ipaddr
 				     port: port
 				     srvkey: servkey
 				     lastmsg: (current-seconds)
 				     expires: (+ (current-seconds) 60))))
@@ -365,11 +370,12 @@
 	 (conns      (remotedat-conns remdat)) ;; just checking that remdat is a remotedat
 	 (dbname     (db:run-id->dbname rid)))
     (if *localmode*
 	(let* ((dbdat    (dbr:dbstruct-get-dbdat *dbstruct* dbname))
 	       (indat    `((cmd . ,cmd)(params . ,params))))
-	  (api:process-request *dbstruct* indat)
+	  (api:execute-requests *dbstruct* cmd params)
+	  ;; (api:process-request *dbstruct* indat)
 	  ;; (api:process-request dbdat indat)
 	  )
 	(begin
 	  (rmt:open-main-connection remdat apath)
 	  (if rid (rmt:general-open-connection remdat apath dbname))
@@ -394,12 +400,11 @@
 	   (host    (conndat-ipaddr conn))
 	   (port    (conndat-port   conn))
 	   (payload `((cmd    . ,cmd)
 		      (key    . ,(conndat-srvkey conn))
 		      (params . ,params)))
-	   (res      (send-receive-nn soc ;; (open-send-receive-nn (conc host":"port)
-				      (sexpr->string payload))))
+	   (res      (send-receive soc payload)))
       (if (member res '("#<unspecified>")) ;; TODO - fix this in string->sexpr
 	  #f
 	  (string->sexpr res)))))
 
 ;; db is at apath/.db/dbname, rid is an intermediary solution and will be removed
@@ -1658,11 +1663,11 @@
 ;;
 (define (server:ping conn #!key (do-exit #f))
   (let* ((req (conndat-socket conn))
 	 (srvkey (conndat-srvkey conn))
 	 (msg (sexpr->string '(ping ,srvkey))))
-    (send-receive-nn req msg))) ;; (server-ready? host port server-id))
+    (send-receive req msg))) ;; (server-ready? host port server-id))
 
 ;;======================================================================
 ;; http-transportmod.scm contents moved here
 ;;======================================================================
 
@@ -1690,22 +1695,22 @@
 	(wait-and-close uconn))
       (let* ((port            (portlogger:open-run-close portlogger:find-port))
 	     (handler-proc    (lambda (rem-host-port qrykey cmd params) ;;
 				(api:execute-requests *dbstruct-db* cmd params))))
 	;; (api:process-request *dbstuct-db* 
-	(set! *server-info* (make-servdat host: ipaddrstr port: port))
+	(set! *server-info* (make-servdat host: hostn port: port))
 	(let* ((uconn (run-listener handler-proc suggested-port: port))
 	       (rport (udat-port uconn))) ;; the real port
 	  (servdat-host-set! *server-info* hostn)
 	  (servdat-port-set! *server-info* rport)
 	  (servdat-uconn-set! *server-info* uconn)
 	  (wait-and-close uconn)
 	  (db:print-current-query-stats)
 	  )))
-  (let* ((host (servdat-host *servdat-info*))
-	 (port (servdat-port *servdat-info*))
-	 (mode (or (servdat-mode *servdat-mode*)
+  (let* ((host (servdat-host *server-info*))
+	 (port (servdat-port *server-info*))
+	 (mode (or (servdat-mode *server-info*)
 		   "non-db")))
       ;; server exit stuff here
       ;; (rmt:server-shutdown host port) - always do in on-exit
       ;; (portlogger:open-run-close portlogger:set-port port "released") ;; moved to on-exit 
       (debug:print-info 0 *default-log-port* "Server "host":"port" mode "mode"shutdown complete. Exiting")
@@ -1832,11 +1837,11 @@
 	
 (define (server-ready? host port key) ;; server-address is host:port
   (let* ((data (sexpr->string  `((cmd . ping)
 				 (key . ,key)
 				 (params . ()))))
-	 (res  (open-send-receive-nn (conc host ":" port) data)))
+	 (res  (send-receive (conc host ":" port) data)))
     (if res
 	(string->sexpr res)
 	res)))
 
 ; from the pkts return servers associated with dbpath
@@ -2270,22 +2275,22 @@
 					;(print "Output: "  inl)
 		    (set! ret  #t))
 		  (loop (read-line inp)))))))
     ret))
 
-(define (open-nn-connection host-port)
+#;(define (open-nn-connection host-port)
   (let ((req  (make-req-socket))
         (uri  (conc "tcp://" host-port)))
     (nng-dial req uri)
     (socket-set! req 'nng/recvtimeo 2000)
     req))
 
-(define (send-receive-nn req msg)
+#;(define (send-receive-nn req msg)
   (nng-send req msg)
   (nng-recv req))
 
-(define (close-nn-connection req)
+#;(define (close-nn-connection req)
   (nng-close! req))
   
 ;; ;; open connection to server, send message, close connection
 ;; ;;
 ;; (define (open-send-close-nn host-port msg #!key (timeout 3) ) ;; default timeout is 3 seconds
@@ -2320,11 +2325,11 @@
 ;;        (thread-start! th1)
 ;;        (thread-start! th2)
 ;;        (thread-join! th1)
 ;;        res))))
 ;; 
-(define (open-send-receive-nn host-port msg #!key (timeout 3) ) ;; default timeout is 3 seconds
+#;(define (open-send-receive-nn host-port msg #!key (timeout 3) ) ;; default timeout is 3 seconds
   (let ((req  (make-req-socket))
         (uri  (conc "tcp://" host-port))
         (res  #f)) 
     (handle-exceptions
      exn