 		@subscriptions.dispose()
 
 	serialize: ->
+
+	consumeStatusBar: (@statusBar) ->
+		@statusBarDefer.resolve @statusBar
+
+	consumeConsolePanel: (@consolePanel) ->
+		@consolePanelDefer.resolve @consolePanel
+
+	consumeToolBar: (toolBar) ->
+		@toolBar = toolBar @packageName
+		@toolBar.addButton
+			icon: 'checkmark-circled'
+			callback: @packageName + ':compile-locally'
+			tooltip: 'Compile locally'
+			iconset: 'ion'
+			priority: 53
+		@consoleToolBar.resolve @toolBar
+
+	consumeParticleDev: (@particleDev) ->
+		@particleDevDefer.resolve @particleDev
+
+	consumeProfiles: (@profileManager) ->
+		@profilesDefer.resolve @profileManager
 
 	config:
 		dockerHost:

						compileErrorHandler 'Compilation failed'
					else
						@consolePanel.raw fs.readFileSync(path.join(outputDir, 'memory-use.log')).toString()
				, (error) =>
					compileErrorHandler error


		@dockerManager.pull().then (value) =>
			atom.notifications.addInfo 'Available firmware versions updated'

	addCommand: (name, callback, target='atom-workspace') ->
		name = @packageName + ':' + name
		@subscriptions.add atom.commands.add target, name, callback
