     pkg.author + '.'
     'All rights reserved'
   ].join(' ')
+
+
+pkgIdentifier = ->
+  author = pkg.author.replace(/[^a-zA-Z]/g, '').toLowerCase()
+  name = pkg.name.toLowerCase()
+  return ['com', author, name].join('.')
+
+
+helperPList = (tmp_path, name, done) ->
+  split_name = name.split(' ')
+
+  app_path = path.join(tmp_path, 'Contents/Frameworks', name + '.app')
+
+  new_app_name = _.clone(split_name)
+  new_app_name[0] = pkg.name
+  new_app_path = path.join(tmp_path, 'Contents/Frameworks', new_app_name.join(' ') + '.app')
+
+  new_pkg_name = name.replace('Electron', pkg.name)
+
+  identifier = [pkgIdentifier(), 'helper']
+  identifier.push(split_name[2].toLowerCase()) if split_name.length > 2
+
+  plist_file = path.join(app_path, 'Contents/Info.plist')
+  info_plist = plist.parse fs.readFileSync(plist_file, 'utf8')
+  info_plist['CFBundleDisplayName'] = new_pkg_name
+  info_plist['CFBundleExecutable'] = new_pkg_name
+  info_plist['CFBundleName'] = new_pkg_name
+  info_plist['CFBundleIdentifier'] = identifier.join('.')
+
+  fs.writeFile plist_file, plist.build(info_plist), {encoding: 'utf8'}, (err) ->
+    return done(err) if err
+
+    fs.move path.join(app_path, 'Contents/MacOS', name), path.join(app_path, 'Contents/MacOS', new_pkg_name), (err) ->
+      return done(err) if err
+
+      fs.move app_path, new_app_path, (err) ->
+        return done(err)
 
 
 # Build

      fs.move path.join(tmp_path, 'Contents/MacOS/Electron'), path.join(tmp_path, 'Contents/MacOS/', pkg.name), (err) ->
        step(err)
    ]
    plist: ['electron', (step) ->
      info_plist = plist.parse fs.readFileSync(path.join(tmp_path, 'Contents/Info.plist'), 'utf8')
      info_plist['CFBundleExecutable'] = pkg.name
      info_plist['CFBundleName'] = pkg.name
      info_plist['CFBundleDisplayName'] = pkg.name
      info_plist['CFBundleVersion'] = pkg.version
      info_plist['CFBundleShortVersionString'] = pkg.version
      info_plist['CFBundleIconFile'] = pkg.name + '.icns'

      fs.writeFile path.join(tmp_path, 'Contents/Info.plist'), plist.build(info_plist), {encoding: 'utf8'}, (err) ->
        step(err)
    ],
    plist_helper: ['electron', (step) -> helperPList(tmp_path, 'Electron Helper', step)]
    plist_helper_eh: ['electron', (step) -> helperPList(tmp_path, 'Electron Helper EH', step)]
    plist_helper_np: ['electron', (step) -> helperPList(tmp_path, 'Electron Helper NP', step)]
    remove_default: ['electron', (step) ->
      fs.remove path.join(tmp_path, 'Contents/Resources/default_app'), (err) ->
        step(err)
