I am trying to understand the below code trying to use reactive extensions

```
 IObservable<string> textChangedObservable =
            Observable.FromEventPattern<TextChangedEventArgs>(searchScrip, "TextChanged")
                .Select(evt => ((TextBox) sender).Text);

 textChangedObservable.Subscribe(OnNext, OnCompleted);

private void OnNext(string s)
    {
        System.Diagnostics.Debug.Print("OnNext " + s + "\n");
    }

    private void OnCompleted()
    {
        System.Diagnostics.Debug.Print("OnCompleted " + "\n");
    }

```

If I enter SEARC in the input box, the output looks 

* OnNext SE
* OnNext SEA
* OnNext SEA
* OnNext SEAR
* OnNext SEAR
* OnNext SEAR
* OnNext SEARC
* OnNext SEARC
* OnNext SEARC
* OnNext SEARC

	1. Why is "S" not triggering an OnNext?
	2. Why is OnCompleted never called?
	3. Why is the OnNext called n-1 time on the nth character?