AngularJs 2 - создано несколько экземпляров сервиса

Я создал сервис AngularJS 2 и использую его в двух разных компонентах: App-Component и Sub-Component. Каждое выходное свойство 'log' (строка) моего сервиса.

StateService класс:

@Injectable ()
class StateService {

    public log : string;
    static count : number = 0;

    constructor () {
        this.log = '';
        StateService.count++;
        this.writeToLog ('CREATED '+StateService.count+' at ' + new Date().toString()),;
    }

    public writeToLog (text : string) : void {
        this.log += text + '\n';
    }
}  

Составная часть :

@Component ({
    selector : 'Sub-Component',
    template : `<hr>
            This is the Sub-Component !
            <BR>
            StateService Log : 
            <pre>{{ _stateService.log }}</pre>
            <button (click)="WriteToLog ()">Write to log</button>
            `,
    providers : [StateService]
})

export class SubComponent {
    constructor (private _stateService : StateService) {
    }

    public WriteToLog () : void {
        this._stateService.writeToLog ('From Sub-Component - This is '+new Date().toString());
    }
}

Живой пример кодаВот

Я за исключением того, что служба создается один раз, и когда каждый компонент вызывает метод WriteToLog, выходные данные одинаковы для каждого компонента, но это не так.

Пример вывода:

Компонент App может вывести это:

Экземпляр 1 - Создано Чт 21 января 2016 11:43:51

Из App-Component - Это Чт 21 января 2016 11:43:54

Из App-Component - Это Чт 21 января 2016 11:43:55

и субкомпонент может вывести это:

Экземпляр 2 - Создано Чт 21 января 2016 11:43:51

Из подкомпонента - Это четверг, 21 января 2016 г. 11:43:57

Из подкомпонента - Это четверг, 21 января 2016 г. 11:43:58

Таким образом, создается впечатление, что 2 экземпляра службы созданы (экземпляр 1 + экземпляр 2)

Я хочу только один экземпляр;) и когда я добавляю строку в журнал, это должно появиться в обоих компонентах.

Спасибо за помощь

Ответы на вопрос(2)

Ваш ответ на вопрос