         
         callback null, this
 
+    loadLinks: (self..., callback) ->
+        links = _.compact @links.scripts.concat @links.styles
+
+        load = (link, done) =>
+            link = @find '/' + link
+            #  don't try to reload links (especially since their `content`
+            # may already contain a precompiled version rather than raw
+            # file contents)
+            return done() if link.content
+            
+            fs.readFile link.absolutePath, 'utf8', (errors, data) ->
+                link.content = data
+                done()
+
+        async.forEach links, load, (errors) =>
+            callback errors, this
+
     # (6) concatenate and optimize scripts and stylesheets
     optimize: (self..., callback) ->
         scripts = @links.scripts
             .map (ref) =>
-                # TODO: everything should exist and have content, so 
-                # the existential operator needs to go
-                (@find '/' + ref)?.content
+                (@find '/' + ref).content
             .join ';\n'
         
         @push @root + '/application.min.js', 

        bundle.setProductionEnvironment
        bundle.findLinks
        bundle.aggregateLinks
        bundle.optimize
        bundle.rewriteHtml
        ]

                el = $ @
                # we can't remove all scripts -- absolute references to
                # external scripts and styles should be kept intact
                relative = el.attr('src').indexOf('/') isnt 0
                internal = el.attr('src').indexOf('http') isnt 0
                util = el.hasClass('jsdom')
                
                if util or relative or internal
                    el.remove()
                
            script = window.document.createElement('script')
