 @_ESC = {}
 
 #-----------------------------------------------------------------------------------------------------------
-### TAINT don't keep state here ###
-@_ESC.registry              = []
-@_ESC.registry_index        = new Map()
+@_ESC.initialize = ( state ) =>
+  state[ '_ESC' ] =
+    registry:   []
+    index:      new Map()
 
 #-----------------------------------------------------------------------------------------------------------
 ### Code duplication ###

        is_command = not is_command
        if is_command
          id      = parseInt stretch, 10
          entry   = @_ESC.retrieve_entry id
          content = entry[ 'parsed' ]
          ### should never happen: ###
          throw new Error "not registered correctly: #{rpr stretch}"  unless CND.isa_list content

        is_do = not is_do
        if is_do
          id      = parseInt stretch, 10
          entry   = @_ESC.retrieve_entry state, id
          content = entry[ 'raw' ]
          send [ '!', 'do', content, ( @copy meta ), ]
        else
