 #### CS399 extensions: ExternalModule
 exports.ExternalModule = class ExternalModule extends Base
   constructor: (@name, @code) ->
-
-    # assign name if there isn't one
-    if !@name
-      @name = "\"unnamed-module.js\""
+    # capture the actual name
+    if @name
+      capture = /^\"(.+)\"$/g
+      match = capture.exec(@name)
+      @name = match[1]
 
     # add .js extension if there isn't one
 

      prelude = "#{@compileNode merge(o, indent: '')}\n" if preludeExps.length
      @expressions = rest
    code = @compileWithDeclarations o
    return code if o.bare
    "#{prelude}(function() {\n#{code}\n}).call(this);\n"

  # Compile the expressions body for the contents of a function, with
  # declarations of all inner variables pushed up to the top.

  # It would be better not to generate them in the first place, but for now,
  # clean up obvious double-parentheses.
  compileRoot: (o) ->
    # CS399
    console.log "root options received: #{JSON.stringify o}"
    o.root    = this
    @moduleNames = {}
    @moduleCode = {}
    modulePrelude = ""

    o.indent  = if o.bare then '' else TAB
    o.scope   = new Scope null, this, null
    o.level   = LEVEL_TOP
