diff --git a/internal/MEDLEY-UTILS b/internal/MEDLEY-UTILS
index c4c6c9ca..47d52d5e 100644
--- a/internal/MEDLEY-UTILS
+++ b/internal/MEDLEY-UTILS
@@ -1,11 +1,11 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10)
 
-(FILECREATED "31-Jul-2023 18:34:20" |{DSK}<home>frank>il>medley>gmedley>internal>MEDLEY-UTILS.;3| 10550  
+(FILECREATED " 1-Aug-2023 22:43:13" |{DSK}<home>frank>il>medley>gmedley>internal>MEDLEY-UTILS.;5| 10714  
 
-      :CHANGES-TO (FNS MAKE-WHEREIS-HASH)
+      :CHANGES-TO (FNS MAKE-FULLER-DB)
 
-      :PREVIOUS-DATE "31-Jul-2023 18:07:23" 
-|{DSK}<home>frank>il>medley>gmedley>internal>MEDLEY-UTILS.;2|)
+      :PREVIOUS-DATE " 1-Aug-2023 22:22:02" 
+|{DSK}<home>frank>il>medley>gmedley>internal>MEDLEY-UTILS.;4|)
 
 
 (PRETTYCOMPRINT MEDLEY-UTILSCOMS)
@@ -105,14 +105,17 @@
                                                           (* \; "Edited 20-Jun-2022 17:23 by larry")
     (FILESLOAD (SOURCE)
            FILESETS)
-    (DRIBBLE (MEDLEYDIR "tmp" "fuller.dribble" T T))
+    (DRIBBLE (CONCAT "{DSK}" (UNIX-GETENV "LOADUP_WORKDIR")
+                    "/" "fuller.dribble"))
     (DOFILESLOAD (SUBSET (APPEND OKSOURCES OKLIBRARY OKLISPUSERS OKINTERNAL)
                         'FINDFILE))
     (GATHER-INFO 'ALL)
     (MASTERSCOPE '(WHO CALLS XYZZY))
-    (DUMPDATABASE NIL (MKATOM (MEDLEYDIR "tmp" "fuller.database" T T)))
+    (DUMPDATABASE NIL (MKATOM (CONCAT "{DSK}" (UNIX-GETENV "LOADUP_WORKDIR")
+                                     "/" "fuller.database")))
     (DRIBBLE)
-    (MAKESYS (MEDLEYDIR "tmp" "fuller.sysout" T T)
+    (MAKESYS (CONCAT "{DSK}" (UNIX-GETENV "LOADUP_WORKDIR")
+                    "/" "fuller.sysout")
            "Welcome to Fuller sysout")))
 
 (MEDLEY-FIX-LINKS
@@ -175,7 +178,7 @@
          (DRIBBLE))))
 )
 (DECLARE\: DONTCOPY
-  (FILEMAP (NIL (623 7498 (GATHER-INFO 633 . 6161) (MAKE-FULLER-DB 6163 . 6853) (MEDLEY-FIX-LINKS 6855
- . 7252) (MEDLEY-FIX-DATES 7254 . 7496)) (8537 10527 (MAKE-EXPORTS-ALL 8547 . 9575) (MAKE-WHEREIS-HASH
- 9577 . 10525)))))
+  (FILEMAP (NIL (620 7662 (GATHER-INFO 630 . 6158) (MAKE-FULLER-DB 6160 . 7017) (MEDLEY-FIX-LINKS 7019
+ . 7416) (MEDLEY-FIX-DATES 7418 . 7660)) (8701 10691 (MAKE-EXPORTS-ALL 8711 . 9739) (MAKE-WHEREIS-HASH
+ 9741 . 10689)))))
 STOP
diff --git a/internal/MEDLEY-UTILS.LCOM b/internal/MEDLEY-UTILS.LCOM
index acc62cc9..4a353503 100644
Binary files a/internal/MEDLEY-UTILS.LCOM and b/internal/MEDLEY-UTILS.LCOM differ
diff --git a/scripts/copy-all.sh b/scripts/copy-all.sh
index 6c1f9053..339dde4a 100755
--- a/scripts/copy-all.sh
+++ b/scripts/copy-all.sh
@@ -7,25 +7,30 @@ fi
 
 . scripts/loadup-setup.sh
 
+echo ">>>>> START ${script_name}"
+
 # was
 # cp -p tmp/full.sysout tmp/lisp.sysout tmp/*.dribble tmp/whereis.hash loadups/
 # cp -p tmp/exports.all tmp/RDSYS tmp/RDSYS.LCOM library/
 # just copy the files that are released
 
-./scripts/cpv ${LOADUP_WORKDIR}/full.sysout loadups
-./scripts/cpv ${LOADUP_WORKDIR}/lisp.sysout loadups
+./scripts/cpv "${LOADUP_WORKDIR}"/full.sysout loadups
+./scripts/cpv "${LOADUP_WORKDIR}"/lisp.sysout loadups
 if [ "${1}" = "-apps" ]; then
-    ./scripts/cpv ${LOADUP_WORKDIR}/apps.sysout loadups
+    ./scripts/cpv "${LOADUP_WORKDIR}"/apps.sysout loadups
 fi
 
-./scripts/cpv ${LOADUP_WORKDIR}/whereis.hash loadups
-./scripts/cpv ${LOADUP_WORKDIR}/exports.all loadups
+./scripts/cpv "${LOADUP_WORKDIR}"/whereis.hash loadups
+./scripts/cpv "${LOADUP_WORKDIR}"/exports.all loadups
 
-./scripts/cpv ${LOADUP_WORKDIR}/init.dribble loadups
-./scripts/cpv ${LOADUP_WORKDIR}/lisp.dribble loadups
-./scripts/cpv ${LOADUP_WORKDIR}/full.dribble loadups
-./scripts/cpv ${LOADUP_WORKDIR}/whereis.dribble loadups
+./scripts/cpv "${LOADUP_WORKDIR}"/init.dribble loadups
+./scripts/cpv "${LOADUP_WORKDIR}"/lisp.dribble loadups
+./scripts/cpv "${LOADUP_WORKDIR}"/full.dribble loadups
+./scripts/cpv "${LOADUP_WORKDIR}"/whereis.dribble loadups
 
-./scripts/cpv ${LOADUP_WORKDIR}/RDSYS library
-./scripts/cpv ${LOADUP_WORKDIR}/RDSYS.LCOM library
+./scripts/cpv "${LOADUP_WORKDIR}"/RDSYS library
+./scripts/cpv "${LOADUP_WORKDIR}"/RDSYS.LCOM library
 
+echo "<<<<< END ${script_name}"
+echo ""
+exit 0
diff --git a/scripts/copy-db.sh b/scripts/copy-db.sh
index 25044ad1..4c22b420 100755
--- a/scripts/copy-db.sh
+++ b/scripts/copy-db.sh
@@ -7,6 +7,11 @@ fi
 
 . scripts/loadup-setup.sh
 
-./scripts/cpv ${LOADUP_WORKDIR}/fuller.database loadups
-./scripts/cpv ${LOADUP_WORKDIR}/fuller.dribble loadups
+echo ">>>>> START ${script_name}"
 
+./scripts/cpv "${LOADUP_WORKDIR}"/fuller.database loadups
+./scripts/cpv "${LOADUP_WORKDIR}"/fuller.dribble loadups
+
+echo "<<<<< END ${script_name}"
+echo ""
+exit 0
diff --git a/scripts/cpv b/scripts/cpv
index 7f0e7ece..4d84e663 100755
--- a/scripts/cpv
+++ b/scripts/cpv
@@ -2,7 +2,6 @@
 
 # cpv file dest
 # could extend with -r or copying multiple files
-# could change from cp to ln
 
 ln_or_cp () {
     f=$(df $(dirname $1) | tail -1 | awk '{ print $1 }')
@@ -14,9 +13,8 @@ ln_or_cp () {
 file="$1"
 dest="$2"
 
-
 if [ ! -f "$file" ]; then
-    echo no such file "$file"
+    echo "Error: no such file "$file". Exiting."
     exit 1
 fi
 
@@ -34,6 +32,7 @@ fi
 # if no such file $dest then just copy
 if [ ! -f "$dest" ]; then
     $(ln_or_cp $file $dest) $file $dest
+    echo "Added $(basename $dest) to $(dirname $dest)"
     exit 0
 fi
 
@@ -67,5 +66,7 @@ fi
 # make new version and link it
 
 $(ln_or_cp $file $dest.~new~) $file $dest.~$new~
+echo "Added $(basename $dest.~$new~) to $(dirname $dest.~$new~)"
 rm -f $dest
 ln $dest.~$new~ $dest
+echo "Linked $(basename $dest) to $(basename $dest.~$new~) in $(dirname $dest)"
diff --git a/scripts/loadup-apps-from-full.sh b/scripts/loadup-apps-from-full.sh
index d7b6cb7d..c4ba2e47 100755
--- a/scripts/loadup-apps-from-full.sh
+++ b/scripts/loadup-apps-from-full.sh
@@ -7,7 +7,7 @@ fi
 
 . scripts/loadup-setup.sh
 
-loadup_start "loadup-apps-from-full"
+loadup_start
 
 export ROOMSDIR=${MEDLEYDIR}/rooms
 export CLOSDIR=${MEDLEYDIR}/clos
@@ -23,8 +23,35 @@ if [ ! -e ${NOTECARDSDIR} ]; then
     fi
 fi
 
-./run-medley $scr -loadup "${MEDLEYDIR}/sources/LOADUP-APPS.CM" "${LOADUP_WORKDIR}/full.sysout"
+cat >"${cmfile}" <<"EOF"
+"
 
-loadup_finish "loadup-apps-from-full" "apps.sysout" "apps.*"
+(PROGN
+   (IL:MEDLEY-INIT-VARS 'IL:GREET)
+   (IL:LOAD (IL:CONCAT (QUOTE {DSK}) (IL:UNIX-GETENV(QUOTE NOTECARDSDIR))(QUOTE |/system/NOTECARDS.LCOM|)) 'IL:SYSLOAD)
+   (IL:LOAD (IL:CONCAT (QUOTE {DSK}) (IL:UNIX-GETENV(QUOTE ROOMSDIR))(QUOTE /ROOMS)) 'IL:SYSLOAD)
+   (IL:LOAD (IL:CONCAT (QUOTE {DSK}) (IL:UNIX-GETENV(QUOTE CLOSDIR))(QUOTE /DEFSYS.DFASL)) 'IL:SYSLOAD)
+   (IL:LOAD (IL:CONCAT (QUOTE {DSK}) (IL:UNIX-GETENV(QUOTE MEDLEYDIR))(QUOTE |lispusers/BUTTONS.LCOM|)) 'IL:SYSLOAD)
+   (IL:LOAD 
+       (IL:CONCAT (QUOTE {DSK}) (IL:UNIX-GETENV(QUOTE MEDLEYDIR))(QUOTE |/sources/LOADUP-APPS.LCOM|))
+       'IL:SYSLOAD
+   )
+   (IL:HARDRESET)
+)
+SHH
+(PROGN 
+   (IL:ENDLOADUP)
+   (CLOS::LOAD-CLOS)
+   (IL:|Apps.LOADUP|)
+   (IL:MAKESYS
+       (IL:CONCAT (QUOTE {DSK})(IL:UNIX-GETENV(QUOTE LOADUP_WORKDIR))(IL:L-CASE (QUOTE /apps.sysout)))
+       :APPS)
+)
+(IL:LOGOUT T)
 
+"
+EOF
 
+./run-medley ${scr} -loadup "${cmfile}" "${LOADUP_WORKDIR}/full.sysout"
+
+loadup_finish "apps.sysout" "apps.*"
diff --git a/scripts/loadup-aux.sh b/scripts/loadup-aux.sh
index f0abfb47..4a48f779 100755
--- a/scripts/loadup-aux.sh
+++ b/scripts/loadup-aux.sh
@@ -7,9 +7,9 @@ fi
 
 . scripts/loadup-setup.sh
 
-loadup_start "loadup-aux"
+loadup_start
 
-cat >"${LOADUP_WORKDIR}"/loadup-aux.cm <<"EOF"
+cat >"${cmfile}" <<"EOF"
 "
   (IL:MEDLEY-INIT-VARS)
   (IL:LOAD(QUOTE MEDLEY-UTILS))
@@ -19,6 +19,6 @@ cat >"${LOADUP_WORKDIR}"/loadup-aux.cm <<"EOF"
 "
 EOF
 
-./run-medley $scr -loadup "${LOADUP_WORKDIR}"/loadup-aux.cm "${LOADUP_WORKDIR}"/full.sysout
+./run-medley ${scr} -loadup "${cmfile}" "${LOADUP_WORKDIR}"/full.sysout
 
-loadup_finish "loadup-aux" "whereis.hash" "whereis.hash" "exports.all"
+loadup_finish "whereis.hash" "whereis.hash" "exports.all"
diff --git a/scripts/loadup-db-from-full.sh b/scripts/loadup-db-from-full.sh
index b1793a11..c972491a 100755
--- a/scripts/loadup-db-from-full.sh
+++ b/scripts/loadup-db-from-full.sh
@@ -7,11 +7,20 @@ fi
 
 . scripts/loadup-setup.sh
 
-DBCM="${LOADUP_WORKDIR}"/db.cm
+loadup_start
 
-echo '" (IL:MEDLEY-INIT-VARS)(IL:FILESLOAD MEDLEY-UTILS)(IL:MAKE-FULLER-DB)(IL:LOGOUT T)"' > ${DBCM}
+cat >"${cmfile}" <<"EOF"
+"
 
-./run-medley $scr -loadup "${DBCM}" -full
+(IL:MEDLEY-INIT-VARS)
+(IL:FILESLOAD MEDLEY-UTILS)
+(IL:MAKE-FULLER-DB)
+(IL:LOGOUT T)
 
-loadup_finish "loadup-db" "fuller.database" "fuller*"
+"
+EOF
+
+./run-medley ${scr} -loadup "${cmfile}" -full
+
+loadup_finish "fuller.database" "fuller*"
 
diff --git a/scripts/loadup-full-from-lisp.sh b/scripts/loadup-full-from-lisp.sh
index 351ab260..6c027ec4 100755
--- a/scripts/loadup-full-from-lisp.sh
+++ b/scripts/loadup-full-from-lisp.sh
@@ -7,9 +7,27 @@ fi
 
 . scripts/loadup-setup.sh
 
-loadup_start "loadup-full-from-lisp"
+loadup_start
 
-./run-medley $scr -loadup "$MEDLEYDIR/sources/LOADUP-FULL.CM" "${LOADUP_WORKDIR}/lisp.sysout"
+cat >"${cmfile}" <<"EOF"
+"
 
-loadup_finish "loadup-full-from-lisp" "full.sysout" "full.*"
+(PROGN
+  (IL:LOAD(IL:CONCAT(QUOTE {DSK})(IL:UNIX-GETENV(QUOTE MEDLEYDIR))(QUOTE /sources/LOADUP-FULL.LCOM)))
+  (IL:LOADUP-FULL (IL:CONCAT (QUOTE {DSK}) (IL:UNIX-GETENV(QUOTE LOADUP_WORKDIR))(IL:L-CASE (QUOTE /full.dribble))))
+  (IL:HARDRESET)
+)
+SHH
+(PROGN
+  (IL:ENDLOADUP)
+  (IL:MAKESYS (IL:CONCAT (QUOTE {DSK})(IL:UNIX-GETENV(QUOTE LOADUP_WORKDIR))(IL:L-CASE (QUOTE /full.sysout))) :FULL))
+  (IL:LOGOUT T)
+)
+
+"
+EOF
+
+./run-medley ${scr} -loadup "${cmfile}" "${LOADUP_WORKDIR}/lisp.sysout"
+
+loadup_finish "full.sysout" "full.*"
 
diff --git a/scripts/loadup-full.sh b/scripts/loadup-full.sh
index a3a06fe1..a49fdd5a 100755
--- a/scripts/loadup-full.sh
+++ b/scripts/loadup-full.sh
@@ -1,15 +1,14 @@
 #!/bin/sh
 
-export MEDLEYDIR=`pwd`
-
 if [ ! -x run-medley ] ; then
     echo must run from MEDLEYDIR ;
     exit 1 ;
 fi
 
+. ./scripts/loadup-setup.sh
 
-    ./scripts/loadup-init.sh && \
-    ./scripts/loadup-mid-from-init.sh && \
-    ./scripts/loadup-lisp-from-mid.sh && \
-    ./scripts/loadup-full-from-lisp.sh
+./scripts/loadup-init.sh && \
+./scripts/loadup-mid-from-init.sh && \
+./scripts/loadup-lisp-from-mid.sh && \
+./scripts/loadup-full-from-lisp.sh
 
diff --git a/scripts/loadup-init.sh b/scripts/loadup-init.sh
index 4c7be321..e08f8ad5 100755
--- a/scripts/loadup-init.sh
+++ b/scripts/loadup-init.sh
@@ -7,8 +7,29 @@ fi
 
 . scripts/loadup-setup.sh
 
-loadup_start "loadup-init"
+loadup_start
 
-./run-medley $scr -loadup "${MEDLEYDIR}"/sources/LOADUP-INIT.LISP loadups/starter.sysout
+cat >"${cmfile}" <<"EOF"
+(* "make init files; this file is loaded as a 'greet' file by scripts/loadup-init.sh")
 
-loadup_finish "loadup-init" "init.dlinit" "init.*" "RDSYS*" "I-NEW*"
+(LOAD (CONCAT (UNIX-GETENV "MEDLEYDIR") "/sources/MEDLEYDIR.LCOM"))
+(CNDIR (UNIX-GETENV "LOADUP_WORKDIR"))
+(DRIBBLE "init.dribble")
+
+(UNADVISE)
+(ADVISE 'PAGEFULLFN '(RETURN))
+(ADVISE '(ERROR IN \DO-DEFINE-FILE-INFO) '(RETURN))
+(MOVD? 'NILL 'SETTEMPLATE)
+(DEFINEQ (RRE (LAMBDA (X Y) Y)))
+(MOVD? 'RRE 'READ-READER-ENVIRONMENT)
+
+(LOAD (MEDLEYDIR "sources" "MAKEINIT.LCOM"))
+(MAKEINITGREET)
+(DRIBBLE)
+(LOGOUT T)
+STOP
+EOF
+
+./run-medley $scr -loadup "${cmfile}" loadups/starter.sysout
+
+loadup_finish "init.dlinit" "init.*" "RDSYS*" "I-NEW*"
diff --git a/scripts/loadup-lisp-from-mid.sh b/scripts/loadup-lisp-from-mid.sh
index 283b8ba6..7233f85b 100755
--- a/scripts/loadup-lisp-from-mid.sh
+++ b/scripts/loadup-lisp-from-mid.sh
@@ -7,8 +7,26 @@ fi
 
 . scripts/loadup-setup.sh
 
-loadup_start "loadup-lisp-from-mid"
+loadup_start
 
-./run-medley $scr -loadup "$MEDLEYDIR/sources/LOADUP-LISP.CM" ${LOADUP_WORKDIR}/init-mid.sysout
+cat >"${cmfile}" <<"EOF"
+"
 
-loadup_finish "loadup-lisp-from-mid" "lisp.sysout" "lisp.*"
+(PROGN
+  (LOAD(CONCAT(QUOTE {DSK})(UNIX-GETENV(QUOTE MEDLEYDIR))(QUOTE /sources/LOADUP-LISP.LCOM)))
+  (LOADUP-LISP(CONCAT(QUOTE {DSK})(UNIX-GETENV(QUOTE LOADUP_WORKDIR))(QUOTE /lisp.dribble)))
+  (HARDRESET)
+)
+SHH
+(PROGN
+  (IL:ENDLOADUP)
+  (IL:MAKESYS (IL:CONCAT (QUOTE {DSK})(IL:UNIX-GETENV(QUOTE LOADUP_WORKDIR))(IL:L-CASE (QUOTE /lisp.sysout))) :LISP)
+  (IL:LOGOUT T)
+)
+
+"
+EOF
+
+./run-medley ${scr} -loadup "${cmfile}" "${LOADUP_WORKDIR}/init-mid.sysout"
+
+loadup_finish "lisp.sysout" "lisp.*"
diff --git a/scripts/loadup-mid-from-init.sh b/scripts/loadup-mid-from-init.sh
index d5f4ff26..7efc13e4 100755
--- a/scripts/loadup-mid-from-init.sh
+++ b/scripts/loadup-mid-from-init.sh
@@ -7,8 +7,20 @@ fi
 
 . scripts/loadup-setup.sh
 
-loadup_start "loadup-mid-from-init"
+loadup_start
 
-./run-medley -prog "ldeinit" -NF -loadup $MEDLEYDIR/sources/XREM.CM $scr -vmem ${LOADUP_WORKDIR}/init-mid.sysout ${LOADUP_WORKDIR}/init.dlinit
+cat >"${cmfile}" <<"EOF"
+"
+(MOVD? (QUOTE NILL) (QUOTE PROMPTPRINT))
+(MOVD? (QUOTE NILL) (QUOTE CURSORP))
+(MOVD? (QUOTE NILL) (QUOTE CHANGEBACKGROUNDBORDER))
+(LOGOUT)
+"
+EOF
 
-loadup_finish "loadup-mid-from-init" "init-mid.sysout" "init-mid.sysout"
+./run-medley -prog "ldeinit" \
+             -NF \
+             -loadup "${cmfile}" ${scr} -vmem "${LOADUP_WORKDIR}/init-mid.sysout" \
+            "${LOADUP_WORKDIR}/init.dlinit"
+
+loadup_finish "init-mid.sysout" "init-mid.sysout"
diff --git a/scripts/loadup-setup.sh b/scripts/loadup-setup.sh
index 2fca51be..98e15150 100644
--- a/scripts/loadup-setup.sh
+++ b/scripts/loadup-setup.sh
@@ -12,14 +12,20 @@ scr="-sc 1024x768 -g 1042x790"
 
 touch "${LOADUP_WORKDIR}"/loadup.timestamp
 
+script_name=$(basename "$0" ".sh")
+cmfile="${LOADUP_WORKDIR}/${script_name}.cm"
+
+
+######################################################################
 
 loadup_start () {
-  echo ">>>>> START ${1}"
+  echo ">>>>> START ${script_name}"
 }
 
 loadup_finish () {
-  local script_name=${1}
-  if [ "${LOADUP_WORKDIR}/${2}" -nt "${LOADUP_WORKDIR}"/loadup.timestamp ];
+  local exit_code
+  rm -f "${cmfile}"
+  if [ "${LOADUP_WORKDIR}/${1}" -nt "${LOADUP_WORKDIR}"/loadup.timestamp ];
   then
     echo "+++++ SUCCESS +++++"
     exit_code=0
@@ -28,7 +34,7 @@ loadup_finish () {
     exit_code=1
   fi
   echo "..... files created ....."
-    shift; shift
+    shift;
     for f in ${*};
     do
       ls -l "${LOADUP_WORKDIR}"/$f 2>/dev/null
@@ -38,5 +44,6 @@ loadup_finish () {
   exit ${exit_code}
 }
 
+######################################################################
 
 
