                 type = parts[0].replace /([a-z])(.*)s/,
                     ($0,$1,$2) -> $1.toUpperCase()+$2
 
+                parts[1] = parts[1].replace /^_/, ""
                 dashedname = parts[1..].join "-"
                 camelcasename = dashedname.replace /(^|\-)([a-z])/g,
                     ($1) -> $1.toUpperCase().replace("-", "")
 
+            camelcasename = "" if camelcasename is "Main"
             modname = "#{camelcasename}#{type}"
 
             results.push "import #{modname} from \"./#{pathname}\";"
+            if modname is "Router"
+                router = true
+                continue
+
             objects.push "#{modname}"
         results.push "var App = {"
+        results.push "
+            init: function() {
+                this._super.apply(this, arguments);
+                this.Router = Router;
+            },
+            Resolver: Em.DefaultResolver.extend({
+                resolveOther: function(parsedName) {
+                    var factory = this._super(parsedName);
+                    if (factory) {
+                        return factory;
+                    }
+                    parsedName.name = parsedName.name.replace(/\\.([a-z])/, function(a,b) {
+                        return b.toUpperCase();
+                    });
+                    parsedName.name = parsedName.name.replace(/^components\\//, \"\");
+                    factory = this._super(parsedName);
+                    if (factory) {
+                        return factory;
+                    }
+                }
+            }),
+        "
         results.push ("  #{i}: #{i}" for i in objects).join ",\n"
         results.push "};"
         results.push "export default App;"

    getFileContent: ->
        @log "debug", "#C# #{@config.filename}" if @config.debug

        results = []
        objects = []

        for pathname in @state.files.sort()

            if parts[0] is "pods"
                type = parts.pop().replace /([a-z])(.*)/,
                    ($0,$1,$2) -> $1.toUpperCase()+$2
                parts[1] = parts[1].replace /^_/, ""
                dashedname = parts[1..].join "-"
                camelcasename = dashedname.replace /(^|\-)([a-z])/g,
                    ($1) -> $1.toUpperCase().replace("-", "")
