large refactor, added PlatformApi, deleted icons
diff --git a/.gitignore b/.gitignore
index a1eae77..ec8aba6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,8 +4,11 @@
 .gitcore
 *.jar
 
-node_modules/.bin/jasmine-node
-node_modules/.bin/jshint
-node_modules/jasmine-node/
-node_modules/jshint/
-node_modules/tmp/
+node_modules/
+
+
+!node_modules/adm-zip
+!node_modules/cordova-serve
+!node_modules/nopt
+!node_modules/q
+!node_modules/shelljs
diff --git a/bin/create b/bin/create
index b835820..5bd53f0 100755
--- a/bin/create
+++ b/bin/create
@@ -18,18 +18,75 @@
        specific language governing permissions and limitations
        under the License.
 */
-var path = require('path');
-var create = require('./lib/create');
-var args = process.argv;
+// var path = require('path');
+// var create = require('./lib/create');
+// var args = process.argv;
 
-// Support basic help commands
-if(args.length < 3 || (args[2] == '--help' || args[2] == '/?' || args[2] == '-h' ||
-                    args[2] == 'help' || args[2] == '-help' || args[2] == '/help')) {
-    console.log('Usage: ' + path.relative(process.cwd(), path.join(__dirname, 'create')) + ' <path_to_new_project> <package_name> <project_name>');
-    console.log('    <path_to_new_project>: Path to your new Cordova Browser project');
-    console.log('    <package_name>: Package name, following reverse-domain style convention');
-    console.log('    <project_name>: Project name');
-    process.exitCode = 1;
-} else {
-    create.createProject(args[2], args[3], args[4], args[5]);
+// // Support basic help commands
+// if(args.length < 3 || (args[2] == '--help' || args[2] == '/?' || args[2] == '-h' ||
+//                     args[2] == 'help' || args[2] == '-help' || args[2] == '/help')) {
+//     console.log('Usage: ' + path.relative(process.cwd(), path.join(__dirname, 'create')) + ' <path_to_new_project> <package_name> <project_name>');
+//     console.log('    <path_to_new_project>: Path to your new Cordova Browser project');
+//     console.log('    <package_name>: Package name, following reverse-domain style convention');
+//     console.log('    <project_name>: Project name');
+//     process.exitCode = 1;
+// } else {
+//     create.createProject(args[2], args[3], args[4], args[5]);
+// }
+
+/*
+ * create a Cordova project
+ *
+ * USAGE
+ *   ./create <path_to_new_project> <package_name> <project_name>
+ *
+ * EXAMPLE
+ *  ./create ~/Desktop/radness org.apache.cordova.radness Radness
+ */
+
+var path = require('path');
+var ConfigParser = require('cordova-common').ConfigParser;
+var Api = require('./template/cordova/Api');
+
+
+var argv = require('nopt')({
+    'help' : Boolean,
+    'cli' : Boolean,
+    'shared' : Boolean, // alias for --link
+    'link' : Boolean
+}, { 'd' : '--verbose' });
+
+
+var projectPath = argv.argv.remain[0];
+
+if (argv.help || !projectPath) {
+    console.log('Usage: $0 [--link] [--cli] <path_to_new_project> <package_name> <project_name> [<project_template_dir>]');
+    console.log('   --link (optional): Link directly against the shared copy of the CordovaLib instead of a copy of it.');
+    console.log('   --cli (optional): Use the CLI-project template.');
+    console.log('   <path_to_new_project>: Path to your new Cordova iOS project');
+    console.log('   <package_name>: Package name, following reverse-domain style convention');
+    console.log('   <project_name>: Project name');
+    console.log('   <project_template_dir>: Path to project template (override).');
+    process.exit(0);
 }
+else {
+    var config = new ConfigParser(path.resolve(__dirname, 'template/config.xml'));
+
+    // apply overrides (package and project names
+    if (argv.argv.remain[1]) {
+        config.setPackageName(argv.argv.remain[1]);
+    }
+    if (argv.argv.remain[2]) {
+        config.setName(argv.argv.remain[2]);
+    }
+
+    var options = {
+        cli: argv.cli,
+        link: argv.link || argv.shared,
+        customTemplate: argv.argv.remain[3],
+    };
+
+    Api.createPlatform(projectPath, config, options);
+}
+
+
diff --git a/bin/lib/check_reqs.js b/bin/lib/check_reqs.js
index 720d7aa..2743683 100644
--- a/bin/lib/check_reqs.js
+++ b/bin/lib/check_reqs.js
@@ -21,8 +21,6 @@
 
 //add methods as we determine what are the requirements
 
-var Q = require('q');
-
 module.exports.run = function() {
-    return Q.resolve();
+    return Promise.resolve();
 };
diff --git a/bin/lib/create.js b/bin/lib/create.js
index 9b6e0ff..a7bb099 100644
--- a/bin/lib/create.js
+++ b/bin/lib/create.js
@@ -18,66 +18,90 @@
  * specific language governing permissions and limitations
  * under the License.
  */
- 
+
 var fs = require('fs'),
-    shjs = require('shelljs'),
-    Q = require ('q'),
+    shell = require('shelljs'),
     args = process.argv,
     path = require('path'),
     ROOT    = path.join(__dirname, '..', '..'),
     check_reqs = require('./check_reqs');
 
 module.exports.createProject = function(project_path,package_name,project_name){
-    
+
+    console.log("ROOT = " + ROOT);
+    console.log("browser :: createProject",project_path,package_name,project_name);
+
+
+/*
+    // create the dest and the standard place for our api to live
+    // platforms/platformName/cordova/Api.js
+
+    var apiSrcPath = __dirname; // default value
+    console.log("apiSrcPath " + apiSrcPath);
+    // does options contain the info we desire?
+
+    var projectName = config ? config.name() : "HelloCordova";
+
+    events.emit('log', 'Creating Cordova project for cordova-platform-test:');
+    events.emit('log', '\tPath: ' + dest);
+    events.emit('log', '\tName: ' + projectName);
+
+    shell.mkdir(dest);
+
+    // move a copy of our api to the new project
+    shell.cp('-r',apiSrcPath, dest);
+
+    // move our node_modules
+    var srcModulePath = path.join(__dirname,'../../../node_modules');
+    console.log("srcModulePath = " + srcModulePath);
+    shell.cp('-r',srcModulePath,path.join(dest,'cordova'));
+
+    // I promise I will return
+    return Promise.resolve(new Api(PLATFORM_NAME,dest,events));
+*/
+
     var VERSION = fs.readFileSync(path.join(ROOT, 'VERSION'), 'utf-8');
-    
+
     // Set default values for path, package and name
-    project_path = typeof project_path !== 'undefined' ? project_path : "CordovaExample";
+    project_path = project_path || "CordovaExample";
 
     // Check if project already exists
     if (fs.existsSync(project_path)) {
         console.error('Project already exists! Delete and recreate');
-        process.exit(2);
+        process.exitCode = 2;
+        return;
     }
-    
+
     // Check that requirements are met and proper targets are installed
     if (!check_reqs.run()) {
+        // TODO: use events.emit
         console.error('Please make sure you meet the software requirements in order to build a browser cordova project');
-        process.exit(2);
+        process.exitCode = 2;
+        return;
     }
 
-    console.log('Creating Browser project. Path: ' + path.relative(process.cwd(),project_path));
-
-    //copy template directory
-    shjs.cp('-r', path.join(ROOT, 'bin', 'templates', 'project', 'www'), project_path);
+    //copy template directory ( recursive )
+    //shell.cp('-r', path.join(ROOT, 'bin/templates/project/www'), project_path);
 
     //create cordova/lib if it does not exist yet
-    if (!fs.existsSync(path.join(project_path,'cordova', 'lib'))) {
-        shjs.mkdir('-p', path.join(project_path,'cordova', 'lib'));
+    if (!fs.existsSync(path.join(project_path,'cordova/lib'))) {
+        shell.mkdir('-p', path.join(project_path,'cordova/lib'));
     }
 
     //copy required node_modules
-    shjs.cp('-r', path.join(ROOT, 'node_modules'), path.join(project_path,'cordova'));
+    shell.cp('-r', path.join(ROOT, 'node_modules'), path.join(project_path,'cordova'));
 
     //copy check_reqs file
-    shjs.cp( path.join(ROOT, 'bin', 'lib', 'check_reqs.js'), path.join(project_path,'cordova', 'lib'));
-    
+    shell.cp( path.join(ROOT, 'bin/lib/check_reqs.js'), path.join(project_path,'cordova/lib'));
+
     //copy cordova js file
-    shjs.cp('-r', path.join(ROOT, 'cordova-lib', 'cordova.js'), path.join(project_path,'www'));
+    shell.cp('-r', path.join(ROOT, 'cordova-lib', 'cordova.js'), path.join(project_path,'www'));
 
     //copy cordova-js-src directory
-    shjs.cp('-rf', path.join(ROOT, 'cordova-js-src'), path.join(project_path, 'platform_www'));
+    shell.cp('-rf', path.join(ROOT, 'cordova-js-src'), path.join(project_path, 'platform_www'));
 
     //copy cordova directory
-    shjs.cp('-r', path.join(ROOT, 'bin', 'templates', 'project', 'cordova'), project_path); 
-    [
-        'run',
-        'build',
-        'clean',
-        'version',
-    ].forEach(function(f) { 
-         shjs.chmod(755, path.join(project_path, 'cordova', f));
-    });
+    shell.cp('-r', path.join(ROOT, 'bin/template/cordova'), project_path);
 
-    return Q.resolve();
+    return Promise.resolve();
 };
diff --git a/bin/template/config.xml b/bin/template/config.xml
new file mode 100644
index 0000000..a212661
--- /dev/null
+++ b/bin/template/config.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+-->
+<widget xmlns="http://www.w3.org/ns/widgets">
+
+</widget>
\ No newline at end of file
diff --git a/bin/template/cordova/Api.js b/bin/template/cordova/Api.js
new file mode 100644
index 0000000..b137606
--- /dev/null
+++ b/bin/template/cordova/Api.js
@@ -0,0 +1,135 @@
+/*
+    this file is found by cordova-lib when you attempt to
+    'cordova platform add PATH' where path is this repo.
+*/
+
+/*jslint node: true */
+
+var shell = require('shelljs');
+var path = require('path');
+
+var CordovaLogger = require('cordova-common').CordovaLogger;
+var selfEvents = require('cordova-common').events;
+
+var PLATFORM_NAME = 'testplatform';
+
+function setupEvents(externalEventEmitter) {
+    if (externalEventEmitter) {
+        // This will make the platform internal events visible outside
+        selfEvents.forwardEventsTo(externalEventEmitter);
+        return externalEventEmitter;
+    }
+
+    // There is no logger if external emitter is not present,
+    // so attach a console logger
+    CordovaLogger.get().subscribe(selfEvents);
+    return selfEvents;
+}
+
+function Api(platform, platformRootDir, events) {
+
+    this.platform = platform || PLATFORM_NAME;
+    this.root = path.resolve(__dirname, '..');
+
+    this.locations = {
+        platformRootDir: platformRootDir,
+        root: this.root,
+        www: path.join(this.root, 'assets/www'),
+        res: path.join(this.root, 'res'),
+        platformWww: path.join(this.root, 'platform_www'),
+        configXml: path.join(this.root, 'res/xml/config.xml'),
+        defaultConfigXml: path.join(this.root, 'cordova/defaults.xml'),
+        build: path.join(this.root, 'build'),
+        // NOTE: Due to platformApi spec we need to return relative paths here
+        cordovaJs: 'bin/templates/project/assets/www/cordova.js',
+        cordovaJsSrc: 'cordova-js-src'
+    };
+
+}
+
+Api.createPlatform = function (dest, config, options, events) {
+
+    console.log("browser createPlatform !! dest:" + dest);
+
+    events = setupEvents(events);
+    var name = config.name();
+    var result;
+    try {
+
+        var creator = require('../../lib/create');
+        console.log("creator = " + creator);
+        result = creator.createProject(dest, config.packageName(), name, options)
+        .then(function () {
+            // after platform is created we return Api instance based on new Api.js location
+            // This is required to correctly resolve paths in the future api calls
+            var PlatformApi = require(path.resolve(dest, 'cordova/Api'));
+            return new PlatformApi('browser', dest, events);
+        });
+    }
+    catch(e) {
+        console.log("error : " + e);
+        events.emit('error','createPlatform is not callable from the browser project API.');
+        throw(e);
+    }
+    return result;
+
+
+};
+
+
+Api.updatePlatform = function (dest, options, events) {
+    // console.log("test-platform:Api:updatePlatform");
+    // todo?: create projectInstance and fulfill promise with it.
+    return Promise.resolve();
+};
+
+Api.prototype.getPlatformInfo = function () {
+    console.log("browser-platform:Api:getPlatformInfo");
+    // return PlatformInfo object
+
+    return {
+        "locations":this.locations,
+        "root": this.root,
+        "name": this.platform,
+        "version": { "version" : "1.0.0" },
+        "projectConfig": this._config
+    };
+};
+
+Api.prototype.prepare = function (cordovaProject) {
+    console.log("browser-platform:Api:prepare");
+    return Promise.resolve();
+};
+
+Api.prototype.addPlugin = function (plugin, installOptions) {
+    console.log("browser-platform:Api:addPlugin");
+    return Promise.resolve();
+};
+
+Api.prototype.removePlugin = function (plugin, uninstallOptions) {
+    console.log("browser-platform:Api:removePlugin");
+    return Promise.resolve();
+};
+
+Api.prototype.build = function (buildOptions) {
+    console.log("API building this shit");
+    var self = this;
+    return require('./lib/check_reqs').run()
+    .then(function () {
+        return require('./lib/build').run.call(self, buildOptions);
+    });
+};
+
+Api.prototype.run = function(runOptions) {
+
+};
+
+Api.prototype.clean = function(cleanOptions) {
+    return require('./lib/clean').run();
+};
+
+Api.prototype.requirements = function() {
+    return require('./lib/check_reqs').run();
+};
+
+module.exports = Api;
diff --git a/bin/templates/project/cordova/build b/bin/template/cordova/build
similarity index 100%
rename from bin/templates/project/cordova/build
rename to bin/template/cordova/build
diff --git a/bin/templates/project/cordova/build.bat b/bin/template/cordova/build.bat
similarity index 100%
rename from bin/templates/project/cordova/build.bat
rename to bin/template/cordova/build.bat
diff --git a/bin/templates/project/cordova/clean b/bin/template/cordova/clean
similarity index 94%
rename from bin/templates/project/cordova/clean
rename to bin/template/cordova/clean
index da21bc7..1852d66 100644
--- a/bin/templates/project/cordova/clean
+++ b/bin/template/cordova/clean
@@ -22,7 +22,6 @@
 
 var path = require('path'),
     clean = require('./lib/clean'),
-    reqs  = require('./lib/check_reqs'),
     args  = process.argv;
 
 // Support basic help commands
@@ -32,6 +31,6 @@
     console.log('Usage: ' + path.relative(process.cwd(), path.join(__dirname, 'clean')) );
     process.exit(0);
 } else {
-    clean.cleanProject();
+    clean.run();
 }
 
diff --git a/bin/templates/project/cordova/defaults.xml b/bin/template/cordova/defaults.xml
similarity index 100%
rename from bin/templates/project/cordova/defaults.xml
rename to bin/template/cordova/defaults.xml
diff --git a/bin/templates/project/cordova/lib/build.js b/bin/template/cordova/lib/build.js
similarity index 95%
rename from bin/templates/project/cordova/lib/build.js
rename to bin/template/cordova/lib/build.js
index fde7519..c591354 100644
--- a/bin/templates/project/cordova/lib/build.js
+++ b/bin/template/cordova/lib/build.js
@@ -18,12 +18,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
- 
+
 var path    = require('path'),
     fs      = require('fs'),
     shjs    = require('shelljs'),
     zip     = require('adm-zip'),
-    Q       = require('q'),
     clean   = require('./clean'),
     check_reqs = require('./check_reqs'),
     platformWwwDir          = path.join('platforms', 'browser', 'www'),
@@ -38,7 +37,7 @@
 
     return check_reqs.run()
     .then(function(){
-            return clean.cleanProject();
+            return clean.run();
         },
         function checkReqsError(err){
             console.error('Please make sure you meet the software requirements in order to build a browser cordova project');
@@ -54,7 +53,7 @@
         zipFile.addLocalFolder(platformWwwDir, '.');
         zipFile.writeZip(packageFile);
 
-        return Q.resolve();
+        return Promise.resolve();
 
     });
 };
diff --git a/bin/templates/project/cordova/lib/clean.js b/bin/template/cordova/lib/clean.js
similarity index 74%
rename from bin/templates/project/cordova/lib/clean.js
rename to bin/template/cordova/lib/clean.js
index 2e4367d..dff4c06 100644
--- a/bin/templates/project/cordova/lib/clean.js
+++ b/bin/template/cordova/lib/clean.js
@@ -18,25 +18,27 @@
  * specific language governing permissions and limitations
  * under the License.
  */
- 
+
 var fs = require('fs'),
-    shjs = require('shelljs'),
+    shell = require('shelljs'),
     path = require('path'),
     check_reqs = require('./check_reqs'),
     platformBuildDir = path.join('platforms', 'browser', 'build');
 
-exports.cleanProject = function(){
+var run = function(){
 
-    // Check that requirements are (stil) met
+    console.log("cleaning ... ");
+    // Check that requirements are (still) met
     if (!check_reqs.run()) {
         console.error('Please make sure you meet the software requirements in order to clean an browser cordova project');
         process.exit(2);
     }
-    
+
     console.log('Cleaning Browser project');
+
     try {
         if (fs.existsSync(platformBuildDir)) {
-            shjs.rm('-r', platformBuildDir);
+            shell.rm('-r', platformBuildDir);
         }
     }
     catch(err) {
@@ -44,3 +46,10 @@
     }
 };
 
+module.exports.run = run;
+// just on the off chance something is still calling cleanProject, we will leave this here for a while
+module.exports.cleanProject = function(){
+    console.log("lib/clean will soon only export a `run` command, please update to not call `cleanProject`.");
+    return run();
+}
+
diff --git a/bin/templates/project/cordova/clean b/bin/template/cordova/log
old mode 100644
new mode 100755
similarity index 63%
copy from bin/templates/project/cordova/clean
copy to bin/template/cordova/log
index da21bc7..bb6fb8c
--- a/bin/templates/project/cordova/clean
+++ b/bin/template/cordova/log
@@ -8,9 +8,7 @@
        to you under the Apache License, Version 2.0 (the
        "License"); you may not use this file except in compliance
        with the License.  You may obtain a copy of the License at
-
          http://www.apache.org/licenses/LICENSE-2.0
-
        Unless required by applicable law or agreed to in writing,
        software distributed under the License is distributed on an
        "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -19,19 +17,4 @@
        under the License.
 */
 
-
-var path = require('path'),
-    clean = require('./lib/clean'),
-    reqs  = require('./lib/check_reqs'),
-    args  = process.argv;
-
-// Support basic help commands
-if ( args.length > 2
-   || args[2] == '--help' || args[2] == '/?' || args[2] == '-h' ||
-                    args[2] == 'help' || args[2] == '-help' || args[2] == '/help') {
-    console.log('Usage: ' + path.relative(process.cwd(), path.join(__dirname, 'clean')) );
-    process.exit(0);
-} else {
-    clean.cleanProject();
-}
-
+console.log("cordova/log");
\ No newline at end of file
diff --git a/bin/templates/project/cordova/run b/bin/template/cordova/run
similarity index 94%
rename from bin/templates/project/cordova/run
rename to bin/template/cordova/run
index d4c690b..29c73bc 100755
--- a/bin/templates/project/cordova/run
+++ b/bin/template/cordova/run
@@ -10,7 +10,7 @@
        with the License.  You may obtain a copy of the License at
 
          http://www.apache.org/licenses/LICENSE-2.0
-    
+
        Unless required by applicable law or agreed to in writing,
        software distributed under the License is distributed on an
        "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -37,14 +37,14 @@
 
     // defaults
     args.port = args.port || 8000;
-    args.target = args.target || "chrome";
+    args.target = args.target || "chrome"; // make default the system browser
 
     var root = path.join(__dirname, '../'),
         configFile = path.resolve(path.join(root, 'config.xml')),
         configXML = fs.readFileSync(configFile, 'utf8'),
         sourceFile = /<content[\s]+?src\s*=\s*"(.*?)"/i.exec(configXML);
 
-    var server = cordovaServe();
+    var server = cordovaServe(); // Who wrote this? JavaScript much?
     server.servePlatform('browser', {port: args.port, noServerInfo: true}).then(function () {
         var projectUrl = url.resolve('http://localhost:' + server.port + '/', sourceFile ? sourceFile[1] : 'index.html');
         console.log('Static file server running @ ' + projectUrl + '\nCTRL + C to shut down');
diff --git a/bin/templates/project/cordova/run.bat b/bin/template/cordova/run.bat
similarity index 100%
rename from bin/templates/project/cordova/run.bat
rename to bin/template/cordova/run.bat
diff --git a/bin/templates/project/cordova/version b/bin/template/cordova/version
similarity index 100%
rename from bin/templates/project/cordova/version
rename to bin/template/cordova/version
diff --git a/bin/templates/project/cordova/version.bat b/bin/template/cordova/version.bat
similarity index 100%
rename from bin/templates/project/cordova/version.bat
rename to bin/template/cordova/version.bat
diff --git a/bin/templates/project/www/css/index.css b/bin/template/www/css/index.css
similarity index 100%
rename from bin/templates/project/www/css/index.css
rename to bin/template/www/css/index.css
diff --git a/bin/templates/project/www/img/logo.png b/bin/template/www/img/logo.png
similarity index 100%
rename from bin/templates/project/www/img/logo.png
rename to bin/template/www/img/logo.png
Binary files differ
diff --git a/bin/templates/project/www/index.html b/bin/template/www/index.html
similarity index 100%
rename from bin/templates/project/www/index.html
rename to bin/template/www/index.html
diff --git a/bin/templates/project/www/js/index.js b/bin/template/www/js/index.js
similarity index 100%
rename from bin/templates/project/www/js/index.js
rename to bin/template/www/js/index.js
diff --git a/bin/templates/project/www/manifest.webapp b/bin/template/www/manifest.webapp
similarity index 100%
rename from bin/templates/project/www/manifest.webapp
rename to bin/template/www/manifest.webapp
diff --git a/bin/templates/project/www/res/icon/android/icon-36-ldpi.png b/bin/templates/project/www/res/icon/android/icon-36-ldpi.png
deleted file mode 100644
index cd5032a..0000000
--- a/bin/templates/project/www/res/icon/android/icon-36-ldpi.png
+++ /dev/null
Binary files differ
diff --git a/bin/templates/project/www/res/icon/android/icon-48-mdpi.png b/bin/templates/project/www/res/icon/android/icon-48-mdpi.png
deleted file mode 100644
index e79c606..0000000
--- a/bin/templates/project/www/res/icon/android/icon-48-mdpi.png
+++ /dev/null
Binary files differ
diff --git a/bin/templates/project/www/res/icon/android/icon-72-hdpi.png b/bin/templates/project/www/res/icon/android/icon-72-hdpi.png
deleted file mode 100644
index 4d27634..0000000
--- a/bin/templates/project/www/res/icon/android/icon-72-hdpi.png
+++ /dev/null
Binary files differ
diff --git a/bin/templates/project/www/res/icon/android/icon-96-xhdpi.png b/bin/templates/project/www/res/icon/android/icon-96-xhdpi.png
deleted file mode 100644
index ec7ffbf..0000000
--- a/bin/templates/project/www/res/icon/android/icon-96-xhdpi.png
+++ /dev/null
Binary files differ
diff --git a/bin/templates/project/www/res/icon/bada-wac/icon-48-type5.png b/bin/templates/project/www/res/icon/bada-wac/icon-48-type5.png
deleted file mode 100644
index 8ad8bac..0000000
--- a/bin/templates/project/www/res/icon/bada-wac/icon-48-type5.png
+++ /dev/null
Binary files differ
diff --git a/bin/templates/project/www/res/icon/bada-wac/icon-50-type3.png b/bin/templates/project/www/res/icon/bada-wac/icon-50-type3.png
deleted file mode 100644
index c6ddf84..0000000
--- a/bin/templates/project/www/res/icon/bada-wac/icon-50-type3.png
+++ /dev/null
Binary files differ
diff --git a/bin/templates/project/www/res/icon/bada-wac/icon-80-type4.png b/bin/templates/project/www/res/icon/bada-wac/icon-80-type4.png
deleted file mode 100644
index f86a27a..0000000
--- a/bin/templates/project/www/res/icon/bada-wac/icon-80-type4.png
+++ /dev/null
Binary files differ
diff --git a/bin/templates/project/www/res/icon/bada/icon-128.png b/bin/templates/project/www/res/icon/bada/icon-128.png
deleted file mode 100644
index 3516df3..0000000
--- a/bin/templates/project/www/res/icon/bada/icon-128.png
+++ /dev/null
Binary files differ
diff --git a/bin/templates/project/www/res/icon/blackberry/icon-80.png b/bin/templates/project/www/res/icon/blackberry/icon-80.png
deleted file mode 100644
index f86a27a..0000000
--- a/bin/templates/project/www/res/icon/blackberry/icon-80.png
+++ /dev/null
Binary files differ
diff --git a/bin/templates/project/www/res/icon/blackberry10/icon-80.png b/bin/templates/project/www/res/icon/blackberry10/icon-80.png
deleted file mode 100644
index f86a27a..0000000
--- a/bin/templates/project/www/res/icon/blackberry10/icon-80.png
+++ /dev/null
Binary files differ
diff --git a/bin/templates/project/www/res/icon/ios/icon-57-2x.png b/bin/templates/project/www/res/icon/ios/icon-57-2x.png
deleted file mode 100644
index efd9c37..0000000
--- a/bin/templates/project/www/res/icon/ios/icon-57-2x.png
+++ /dev/null
Binary files differ
diff --git a/bin/templates/project/www/res/icon/ios/icon-57.png b/bin/templates/project/www/res/icon/ios/icon-57.png
deleted file mode 100644
index c795fc4..0000000
--- a/bin/templates/project/www/res/icon/ios/icon-57.png
+++ /dev/null
Binary files differ
diff --git a/bin/templates/project/www/res/icon/ios/icon-72-2x.png b/bin/templates/project/www/res/icon/ios/icon-72-2x.png
deleted file mode 100644
index dd819da..0000000
--- a/bin/templates/project/www/res/icon/ios/icon-72-2x.png
+++ /dev/null
Binary files differ
diff --git a/bin/templates/project/www/res/icon/ios/icon-72.png b/bin/templates/project/www/res/icon/ios/icon-72.png
deleted file mode 100644
index b1cfde7..0000000
--- a/bin/templates/project/www/res/icon/ios/icon-72.png
+++ /dev/null
Binary files differ
diff --git a/bin/templates/project/www/res/icon/tizen/icon-128.png b/bin/templates/project/www/res/icon/tizen/icon-128.png
deleted file mode 100644
index 3516df3..0000000
--- a/bin/templates/project/www/res/icon/tizen/icon-128.png
+++ /dev/null
Binary files differ
diff --git a/bin/templates/project/www/res/icon/webos/icon-64.png b/bin/templates/project/www/res/icon/webos/icon-64.png
deleted file mode 100644
index 03b3849..0000000
--- a/bin/templates/project/www/res/icon/webos/icon-64.png
+++ /dev/null
Binary files differ
diff --git a/bin/templates/project/www/res/icon/windows-phone/icon-173-tile.png b/bin/templates/project/www/res/icon/windows-phone/icon-173-tile.png
deleted file mode 100644
index 4f15e20..0000000
--- a/bin/templates/project/www/res/icon/windows-phone/icon-173-tile.png
+++ /dev/null
Binary files differ
diff --git a/bin/templates/project/www/res/icon/windows-phone/icon-48.png b/bin/templates/project/www/res/icon/windows-phone/icon-48.png
deleted file mode 100644
index 8ad8bac..0000000
--- a/bin/templates/project/www/res/icon/windows-phone/icon-48.png
+++ /dev/null
Binary files differ
diff --git a/bin/templates/project/www/res/icon/windows-phone/icon-62-tile.png b/bin/templates/project/www/res/icon/windows-phone/icon-62-tile.png
deleted file mode 100644
index aab6061..0000000
--- a/bin/templates/project/www/res/icon/windows-phone/icon-62-tile.png
+++ /dev/null
Binary files differ
diff --git a/package.json b/package.json
index 8a2b4ed..76b3f70 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,8 @@
   "name": "cordova-browser",
   "version": "4.2.0-dev",
   "description": "cordova-browser release",
-  "main": "bin/create",
+  "main": "bin/template/cordova/Api.js",
+  "bin": "bin/create",
   "repository": {
     "type": "git",
     "url": "https://git-wip-us.apache.org/repos/asf/cordova-browser.git"