         [ [ words ] dip each ] 2bi
     ] if ; inline
 
+: map-word ( string quot -- seq )
+    over ".private" tail? [
+        [ words ] dip map
+    ] [
+        [ [ private-vocab-name words ] dip map ]
+        [ [ words ] dip map ] 2bi append
+    ] if ; inline
+
 PRIVATE>
 
 M: string coverage-on
-    [ coverage-on ] change-vocabulary-coverage ;
+    [ coverage-on ] each-word ;
 
 M: string coverage-off ( vocabulary -- )
-    [ coverage-off ] change-vocabulary-coverage ;
+    [ coverage-off ] each-word ;
 
 M: word coverage-on ( word -- )
     H{ } clone [ "coverage" set-word-prop ] 2keep
     '[
         \ coverage new [ _ set-at ] 2keep
-        '[ _ t >>executed? drop ] [ ] surround
+        '[ _ t >>executed? drop ] prepend
     ] deep-annotate ;
 
 M: word coverage-off ( word -- )

        [ name>> ":" append print ]
        [ [ bl bl bl bl . ] each ] bi*
    ] if-empty ;

GENERIC: toggle-coverage ( object -- )

M: string toggle-coverage
    [ toggle-coverage ] each-word ;

M: word toggle-coverage
    dup "coverage" word-prop [
