Package('{Name}.Services', {
	Bootstrap : new Class({
		implements: ['exportService', 'importService', 'getUserId'],

		initialize : function()
		{
			this.serviceName = 'bootstrap';
			this.exportServices = [this.serviceName];
			this.importServices = []

			SYMPHONY.services.make(this.serviceName, this, this.implements, true);

			SAPPHIRE.application.listen('start', this.onStart.bind(this));
			SAPPHIRE.application.listen('ready', this.onReady.bind(this));
		},

		exportService : function(name)
		{

		importService : function(name)
		{
			this.importServices.push(name);
		},

		getUserId : function()
		{
			return this.userId;
		},

		onStart : function(done)
		{
			SYMPHONY.remote.hello()
				.then(function(data) {
					done();
				}.bind(this))
		},

		onReady : function()
		{
			return SYMPHONY.application.register({NAME}.appId, this.importServices.unique(), this.exportServices.unique())
				.then(function(response)
				{
					this.userId = response.userReferenceId;

					{NAME}.events.fire('start');
				}.bind(this))
				.done();
		},
	})
});

new {Name}.Services.Bootstrap();
			this.exportServices.push(name);
		},