diff --git a/internal/MEDLEY-UTILS b/internal/MEDLEY-UTILS
index 0e8988d7..0ed86233 100644
--- a/internal/MEDLEY-UTILS
+++ b/internal/MEDLEY-UTILS
@@ -1,25 +1,17 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10)
 
-(FILECREATED "17-Jul-2022 12:44:56" |{DSK}<home>larry>medley>internal>MEDLEY-UTILS.;9| 15959  
+(FILECREATED " 4-Aug-2022 09:50:04" |{DSK}<home>larry>medley>internal>MEDLEY-UTILS.;2| 10212  
 
-      :CHANGES-TO (FNS HCFILES)
+      :CHANGES-TO (VARS MEDLEY-UTILSCOMS)
 
-      :PREVIOUS-DATE "16-Jul-2022 22:08:34" |{DSK}<home>larry>medley>internal>MEDLEY-UTILS.;8|)
+      :PREVIOUS-DATE "17-Jul-2022 12:44:56" |{DSK}<home>larry>medley>internal>MEDLEY-UTILS.;1|)
 
 
 (PRETTYCOMPRINT MEDLEY-UTILSCOMS)
 
-(RPAQQ MEDLEY-UTILSCOMS
-       ((FNS GATHER-INFO MAKE-FULLER-DB MEDLEY-FIX-LINKS MEDLEY-FIX-DATES PICK)
-        (VARS MEDLEY-FIX-DIRS OKSOURCES OKLIBRARY OKLISPUSERS OKINTERNAL)
-        (FNS MAKE-EXPORTS-ALL MAKE-WHEREIS-HASH)
-        
-        (* |;;| "hardcopy files")
-
-        (FNS HCFILES BADFILE)
-        (INITVARS (HCFILES)
-               (BADFILES))
-        (COMMANDS "pick")))
+(RPAQQ MEDLEY-UTILSCOMS ((FNS GATHER-INFO MAKE-FULLER-DB MEDLEY-FIX-LINKS MEDLEY-FIX-DATES)
+                         (VARS MEDLEY-FIX-DIRS OKSOURCES OKLIBRARY OKLISPUSERS OKINTERNAL)
+                         (FNS MAKE-EXPORTS-ALL MAKE-WHEREIS-HASH)))
 (DEFINEQ
 
 (GATHER-INFO
@@ -130,24 +122,6 @@
 (MEDLEY-FIX-DATES
   (LAMBDA (DIRS)                                          (* \; "Edited 28-Jan-2021 12:15 by larry")
     (|for| X |in| (OR DIRS MEDLEY-FIX-DIRS) |join| (FIX-DIRECTORY-DATES (MEDLEYDIR (PRINT X T))))))
-
-(PICK
-  (LAMBDA (TYPE CHOICES)                                  (* \; "Edited 25-Jun-2022 16:58 by larry")
-    (SELECTQ (MKATOM (U-CASE (MKSTRING TYPE)))
-        (NIL (PICK (PICK 'ONEOF '(FILE ISSUE PROJECT))))
-        (ISSUE (LET ((ISSUE (PICK 'ONEOF (OR CHOICES (GIT-COMMAND 
-                            "gh issue list -L 5000 -R interlisp/medley | sed 's/\\([0-9]*\\).*/\\1/'"
-                                                            ))))
-                     (STR (OPENTEXTSTREAM)))
-                    (|for| S |in| (GIT-COMMAND (CL:FORMAT NIL "gh issue view ~a" ISSUE))
-                       |do| (CL:FORMAT STR "~a~&" S)
-                       |finally| (TEDIT STR NIL NIL `(READONLY T TITLE ,(CL:FORMAT NIL "Issue #~a" 
-                                                                               ISSUE))))))
-        (DIR (PICK 'ONEOF '(LISPUSERS LIBRARY DOCTOOLS SOURCES INTERNAL)))
-        (FILE (PICK 'ONEOF (DIRECTORY (MEDLEYDIR (PICK 'DIR)))))
-        (PROJECT (PICK 'ONEOF '(CLOS ROOMS LOOPS NOTECARDS ONLINE TEST GITBOOK COMMUNITY ENVOS)))
-        (ONEOF (CAR (NTH CHOICES (RAND 1 (LENGTH CHOICES)))))
-        (HELP TYPE "Unknown type"))))
 )
 
 (RPAQQ MEDLEY-FIX-DIRS ("sources" "library" "lispusers" "internal" "greetfiles" "doctools"))
@@ -195,104 +169,8 @@
          (RENAMEFILE HASHFILE (MEDLEYDIR "tmp" "whereis.hash" T))
          (DRIBBLE))))
 )
-
-
-
-(* |;;| "hardcopy files")
-
-(DEFINEQ
-
-(HCFILES
-  (LAMBDA (TFILE DEST REDOFLG TOPDIRLEN)                  (* \; "Edited 17-Jul-2022 12:44 by larry")
-                                                          (* \; "Edited 21-Jun-2022 22:59 by larry")
-                                                          (* \; "Edited 31-May-2022 09:31 by larry")
-                                                          (* \; "Edited 20-Feb-2022 12:16 by larry")
-                                                          (* \; "Edited 21-Aug-2021 20:56 by larry")
-    (DECLARE (SPECVARS TFILE))
-    (|if| (NULL TFILE)
-        |then| (SETQ TFILE MEDLEYDIR))
-    (COND
-       ((DIRECTORYNAMEP TFILE)
-
-        (* |;;| "canonicalize")
-
-        (SETQ TFILE (DIRECTORYNAME TFILE))
-        (OR TOPDIRLEN (SETQ TOPDIRLEN (CL:LENGTH (FILENAMEFIELD.STRING TFILE 'DIRECTORY))))
-        (CL:UNLESS DEST
-            (|ShellCommand| (CONCAT "mkdir -p " (UNIX-GETENV "MEDLEYDIR")
-                                   "/tmp/psfiles/"))
-            (SETQ DEST (MEDLEYDIR "tmp/psfiles" NIL T T)))
-
-        (* |;;| "first deal with files in this directory")
-
-        (FOR EXT IN '("TED*" "SKETCH" "T*XT")
-           DO (|for| X |in| (DIRECTORY (CONCAT TFILE "*." EXT ";*"))
-                 |do| (HCFILES X DEST REDOFLG TOPDIRLEN)))
-
-        (* |;;| " then deal with subdirs ")
-
-        (|for| X |in| (DIRECTORY (CONCAT TFILE "*"))
-           |when| (|for| SKIP |in| '(">." ">dinfo>") |always| (NOT (STRPOS SKIP (L-CASE X))))
-           |when| (DIRECTORYNAMEP X) |do| (HCFILES X DEST REDOFLG TOPDIRLEN)))
-       ((SETQ TFILE (INFILEP TFILE))
-        (LET* ((TF (UNPACKFILENAME.STRING TFILE))
-               (NAME (LISTGET TF 'NAME))
-               (DIR (LISTGET TF 'DIRECTORY))
-               (PSFILE (PACKFILENAME.STRING
-                        'EXTENSION
-                        (|if| (EQ REDOFLG 'IP)
-                            |then| "IP"
-                          |else| "PS")
-                        'NAME
-                        (|if| (EQ DEST T)
-                            |then|                           (* \; "with the tedit file")
-                                  NAME
-                          |else| (CONCAT (PACK (SUBST '- '> (UNPACK (SUBSTRING DIR (IPLUS 2 TOPDIRLEN
-                                                                                          )
-                                                                           -1))))
-                                        "-" NAME))
-                        'HOST
-                        (LISTGET TF 'HOST)
-                        'DIRECTORY
-                        (|if| (EQ DEST T)
-                            |then| DIR
-                          |else| DEST)))
-               (TEXTSTREAM))
-              (|if| (AND (NOT REDOFLG)
-                         (INFILEP PSFILE))
-                  |then|                                     (* \; " do nothing")
-                        (PRINTOUT T PSFILE " already there" T)
-                |elseif| (EQ REDOFLG 'TEST)
-                  |then| (PRINTOUT T TFILE "-> " PSFILE T)
-                        (CLOSEF (OPENTEXTSTREAM TFILE))
-                ELSEIF (MEMBER TFILE BADFILES)
-                  THEN (PRINTOUT T "Skipping " TFILE " on BADFILES")
-                |else| (PRINTOUT T "Converting " TFILE " to " PSFILE "...")
-                      (TEDIT.FORMAT.HARDCOPY (SETQ TEXTSTREAM (OPENTEXTSTREAM TFILE))
-                             PSFILE T NIL NIL NIL (|if| (EQ REDOFLG 'IP)
-                                                      |then| 'INTERPRESS
-                                                    |else| 'POSTSCRIPT))
-                      (|printout| T " DONE" T)
-                      (CLOSEF? TEXTSTREAM))))
-       (T (PRINTOUT T "no such file " T)))))
-
-(BADFILE
-  (LAMBDA NIL                                             (* \; "Edited 22-Jun-2022 09:40 by larry")
-    (PUSHNEW BADFILES TFILE)
-    (LET ((STR (OPENSTREAM "BADFILES.TXT" 'APPEND)))
-         (SETFILEPTR STR -1)
-         (PRINT TFILE STR)
-         (CLOSEF STR))
-    (RETFROM 'HCFILES)))
-)
-
-(RPAQ? HCFILES )
-
-(RPAQ? BADFILES )
-
-(DEFCOMMAND "pick" (FIRST . REST) (PICK FIRST REST))
 (DECLARE\: DONTCOPY
-  (FILEMAP (NIL (727 8702 (GATHER-INFO 737 . 6147) (MAKE-FULLER-DB 6149 . 6839) (MEDLEY-FIX-LINKS 6841
- . 7238) (MEDLEY-FIX-DATES 7240 . 7482) (PICK 7484 . 8700)) (9741 11534 (MAKE-EXPORTS-ALL 9751 . 10710
-) (MAKE-WHEREIS-HASH 10712 . 11532)) (11569 15829 (HCFILES 11579 . 15514) (BADFILE 15516 . 15827)))))
+  (FILEMAP (NIL (600 7357 (GATHER-INFO 610 . 6020) (MAKE-FULLER-DB 6022 . 6712) (MEDLEY-FIX-LINKS 6714
+ . 7111) (MEDLEY-FIX-DATES 7113 . 7355)) (8396 10189 (MAKE-EXPORTS-ALL 8406 . 9365) (MAKE-WHEREIS-HASH
+ 9367 . 10187)))))
 STOP
diff --git a/internal/MEDLEY-UTILS.LCOM b/internal/MEDLEY-UTILS.LCOM
index f1fdba30..96e6eb74 100644
Binary files a/internal/MEDLEY-UTILS.LCOM and b/internal/MEDLEY-UTILS.LCOM differ
diff --git a/lispusers/PICK b/lispusers/PICK
new file mode 100644
index 00000000..cb3afd62
--- /dev/null
+++ b/lispusers/PICK
@@ -0,0 +1,87 @@
+(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
+
+(FILECREATED "11-Aug-2022 17:53:58" {DSK}<home>larry>medley>lispusers>PICK.;3 4261   
+
+      :CHANGES-TO (VARS PICKCOMS)
+                  (FNS PICK)
+
+      :PREVIOUS-DATE "10-Aug-2022 16:57:49" {DSK}<home>larry>medley>lispusers>PICK.;1)
+
+
+(PRETTYCOMPRINT PICKCOMS)
+
+(RPAQQ PICKCOMS ((COMMANDS "pick")
+                 (DECLARE%: EVAL@COMPILE DONTCOPY (FILES (LOADCOP)
+                                                         GITFNS))
+                 (FILES GITFNS)
+                 (FNS PICK)))
+
+(DEFCOMMAND "pick" (FIRST . REST) (PICK FIRST REST))
+(DECLARE%: EVAL@COMPILE DONTCOPY 
+
+(FILESLOAD (LOADCOP)
+       GITFNS)
+)
+
+(FILESLOAD GITFNS)
+(DEFINEQ
+
+(PICK
+  [LAMBDA (TYPE CHOICES)                                     (* ; "Edited 11-Aug-2022 17:15 by lmm")
+                                                             (* ; "Edited 10-Aug-2022 16:57 by lmm")
+    (SELECTQ (MKATOM (U-CASE (MKSTRING TYPE)))
+        (ONEOF                                               (* ; 
+                                          "PICK ONEOF A1 A2 A3 ... - just choose from choices listed")
+               [CAR (NTH CHOICES (RAND 1 (LENGTH CHOICES])
+        (NIL                                                 (* ; 
+                                                         "pick -- choose an issue, a file, a project")
+             [PICK (PICK 'ONEOF '(FILE ISSUE PROJECT])
+        (ISSUE                                               (* ; 
+                       "pick issue [number] -- display an issue; if none given, choose one at random")
+               (LET ([ISSUE (PICK 'ONEOF (OR CHOICES (GIT-COMMAND 
+                               "gh issue list -L 5000 -R interlisp/medley | sed 's/\([0-9]*\).*/\1/'"
+                                                            ]
+                     (STR (OPENTEXTSTREAM))
+                     (COMMENTS T)
+                     (TITLE))
+                    (for S in (GIT-COMMAND (CL:FORMAT NIL "gh issue view -R interlisp/medley ~d" 
+                                                  ISSUE)) do (CL:FORMAT STR "~a~&" S)
+                       finally 
+
+                             (* ;; 
+             "this TEDIT call is wrong -- it takes the keyboard and the promptwindow prompt is wrong")
+
+                             [TEDIT STR NIL NIL `(READONLY T TITLE ,(SETQ TITLE (CL:FORMAT NIL 
+                                                                                       "Issue #~d" 
+                                                                                       ISSUE] 
+
+                             (* ;; "if there are comments (or always) show comments too -- the -w switch doesn't work online -- no browser")
+
+                             (IF COMMENTS
+                                 THEN (GIT-COMMAND (CL:FORMAT NIL 
+                                                          "gh issue view -R interlisp/medley ~a -w" 
+                                                          ISSUE)))
+                             (RETURN TITLE))))
+        (DIR 
+             (* ;; "pick a directory to choose files from")
+
+             (PICK 'ONEOF '(LISPUSERS LIBRARY DOCTOOLS SOURCES INTERNAL)))
+        (FILE 
+              (* ;; " pick a file from a (randomly chosen) directory")
+
+              [LIST 'FILE (PICK 'ONEOF (DIRECTORY (OR (MEDLEYDIR (OR (CAR CHOICES)
+                                                                     (PICK 'DIR))
+                                                             NIL T)
+                                                      (FETCH (GIT-PROJECT CLONEPATH)
+                                                         OF (CDR (ASSOC (CAR CHOICES)
+                                                                        GIT-PROJECTS])
+        (PROJECT 
+                 (* ;; "pick PROJECT will choose some repo to work on")
+
+                 [PICK 'ONEOF (PICK 'ONEOF (LIST (MAPCAR GIT-PROJECTS #'CAR)
+                                                 '(CLOS ROOMS ONLINE WEBSITE COMMUNITY ENVOS])
+        (HELP TYPE "Unknown type"])
+)
+(DECLARE%: DONTCOPY
+  (FILEMAP (NIL (735 4238 (PICK 745 . 4236)))))
+STOP
diff --git a/lispusers/PICK.LCOM b/lispusers/PICK.LCOM
new file mode 100644
index 00000000..7ef1f4ea
Binary files /dev/null and b/lispusers/PICK.LCOM differ
diff --git a/lispusers/PICK.TEDIT b/lispusers/PICK.TEDIT
new file mode 100644
index 00000000..99c5f3a1
Binary files /dev/null and b/lispusers/PICK.TEDIT differ
