     @initView 'login'
     # You may ask why commands aren't registered in LoginView?
     # This way, we don't need to require/initialize login view until it's needed.
-    @disposables.add atom.commands.add 'atom-workspace',
-      'spark-dev:cancel-login': => @loginView.cancelCommand()
+    commands = {}
+    commands["#{@packageName}:cancel-login"] = => @loginView.cancelCommand()
+    @disposables.add atom.commands.add 'atom-workspace', commands
     @loginView.show()
 
   # Log out current user

      priority: 54
    @coreButton = @toolBar.addButton
      icon: 'pinpoint'
      callback: 'spark-dev:select-device'
      tooltip: 'Select which device you want to work on'
      iconset: 'ion'
      priority: 55
    @wifiButton = @toolBar.addButton
      icon: 'wifi'
      callback: 'spark-dev:setup-wifi'
      tooltip: 'Setup device\'s WiFi credentials'
      iconset: 'ion'
      priority: 56
    @toolBar.addButton
      icon: 'usb'
      callback: 'spark-dev:show-serial-monitor'
      tooltip: 'Show serial monitor'
      iconset: 'ion'
      priority: 57


      @CompileErrorsView ?= require './views/compile-errors-view'
      @SettingsHelper.setLocal 'compile-status', {errors: errors}
      atom.commands.dispatch @workspaceElement, "#{@packageName()}:show-compile-errors"
      atom.commands.dispatch @workspaceElement, "#{@packageName()}:update-compile-status"
      return

    options = {}
