<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>ObserverCollection.cs</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -4,10 +4,10 @@ namespace Reactive
 {
     public static class ButtonExtensions
     {
-        public static IObservable&lt;MouseEventArgs&gt; GetMouseDowns(this Button b)
+        public static IObservable&lt;MouseEventArgs&gt; GetMouseDowns(this Button button)
         {
             var wrapper = new EventWrapper&lt;MouseEventArgs&gt;();
-            b.MouseDown += wrapper.Handle;
+            button.MouseDown += wrapper.Handler;
             return wrapper;
         }
     }</diff>
      <filename>ButtonExtensions.cs</filename>
    </modified>
    <modified>
      <diff>@@ -1,75 +1,15 @@
 using System;
-using System.Collections.Generic;
 using System.Windows.Forms;
 
 namespace Reactive
 {
-    public class ObserverCollection&lt;T&gt; : IObservable&lt;T&gt;
-    {
-        protected IList&lt;IObserver&lt;T&gt;&gt; _observers;
-
-        public ObserverCollection()
-        {
-            _observers = new List&lt;IObserver&lt;T&gt;&gt;();
-        }
-
-        public virtual IDisposable Subscribe(IObserver&lt;T&gt; observer)
-        {
-            _observers.Add(observer);
-            return new Disposer(() =&gt; Remove(observer));
-        }
-
-        public void NotifyNext(T t)
-        {
-            foreach (IObserver&lt;T&gt; observer in _observers)
-                observer.OnNext(t);
-        }
-
-        public void NotifyDone()
-        {
-            foreach (IObserver&lt;T&gt; observer in _observers)
-                observer.OnDone();
-        }
-
-        public void NotifyError(Exception e)
-        {
-            foreach (IObserver&lt;T&gt; observer in _observers)
-                observer.OnError(e);
-        }
-
-        protected virtual void Remove(IObserver&lt;T&gt; observer)
-        {
-            _observers.Remove(observer);
-        }
-
-        public void Clear()
-        {
-            _observers.Clear();
-        }
-
-        protected class Disposer : IDisposable
-        {
-            private readonly Action _disposeAction;
-
-            public Disposer(Action disposeAction)
-            {
-                _disposeAction = disposeAction;
-            }
-
-            public void Dispose()
-            {
-                _disposeAction();
-            }
-        }
-    }
-
     public class EventWrapper&lt;T&gt; : IObservable&lt;T&gt; where T : EventArgs
     {
         private readonly ObserverCollection&lt;T&gt; _observers = new ObserverCollection&lt;T&gt;();
 
-        public void Handle(object sender, T t)
+        public void Handler(object sender, T eventArgs)
         {
-            _observers.NotifyNext(t);
+            _observers.NotifyNext(eventArgs);
         }
 
         public IDisposable Subscribe(IObserver&lt;T&gt; observer)</diff>
      <filename>EventWrapper.cs</filename>
    </modified>
    <modified>
      <diff>@@ -6,8 +6,7 @@ namespace Reactive
     {
         public static IObservable&lt;TResult&gt; Select&lt;T, TResult&gt;(this IObservable&lt;T&gt; observable, Func&lt;T, TResult&gt; func)
         {
-            return new SelectObservable&lt;T, TResult&gt;(observable, func);
-            //return ObservableBuilder.Create((IObserver&lt;TResult&gt; observer) =&gt; observable.Subscribe(ObserverBuilder.Create(observer, (T a) =&gt; observer.OnNext(func(a)))));
+            return new SelectObservable&lt;T, TResult&gt;(observable, func);            
         }
 
         public static IObservable&lt;TResult&gt; SelectMany&lt;TSource, TCollection, TResult&gt;(this IObservable&lt;TSource&gt; source, Func&lt;TSource, IObservable&lt;TCollection&gt;&gt; collectionSelector, Func&lt;TSource, TCollection, TResult&gt; resultSelector)</diff>
      <filename>Extensions.cs</filename>
    </modified>
    <modified>
      <diff>@@ -15,18 +15,23 @@ namespace Reactive
         {
             InitializeComponent();
 
-            Func&lt;MouseEventArgs, int&gt; slowOperation = args =&gt;
-            {
-                System.Threading.Thread.Sleep(3000);
-                if(args.Button == MouseButtons.Middle)
-                    throw new Exception(&quot;MIDDLE BUTTON NOT ALLOWED!!!&quot;);
-                return args.X;
-            };
+            //Func&lt;MouseEventArgs, int&gt; slowOperation = args =&gt;
+            //{
+            //    System.Threading.Thread.Sleep(3000);
+            //    if(args.Button == MouseButtons.Middle)
+            //        throw new Exception(&quot;MIDDLE BUTTON NOT ALLOWED!!!&quot;);
+            //    return args.X;
+            //};
+
+            //IObservable&lt;string&gt; messages = from md in button1.GetMouseDowns()                                           
+            //                               from x in slowOperation.AsAsyncObservable(md)
+            //                               where md.Button == MouseButtons.Right
+            //                               select &quot;Mouse down: &quot; + x + &quot;\n&quot;;
+
+            IObservable&lt;MouseEventArgs&gt; mouseEvents = button1.GetMouseDowns();
 
-            IObservable&lt;string&gt; messages = from md in button1.GetMouseDowns()                                           
-                                           from x in slowOperation.AsAsyncObservable(md)
-                                           where md.Button == MouseButtons.Right
-                                           select &quot;Mouse down: &quot; + x + &quot;\n&quot;;
+            IObservable&lt;string&gt; messages = from md in mouseEvents
+                                           select &quot;Mouse down at: &quot; + md.X + &quot;\n&quot;;
 
             messages.Subscribe(new TextBoxUpdater(textBox1));
         }
@@ -40,7 +45,7 @@ namespace Reactive
                 _textBox = textBox;
             }
 
-            private void SetText(string text)
+            private void AppendText(string text)
             {
                 Action textboxUpdater = () =&gt; _textBox.AppendText(text);
                 _textBox.BeginInvoke(textboxUpdater);
@@ -48,17 +53,17 @@ namespace Reactive
 
             public void OnNext(string s)
             {
-                SetText(s);
+                AppendText(s);
             }
 
             public void OnDone()
             {
-                SetText(&quot;Done\n&quot;);
+                AppendText(&quot;Done\n&quot;);
             }
 
             public void OnError(Exception e)
             {
-                SetText(&quot;Error: &quot; + e.Message);
+                AppendText(&quot;Error: &quot; + e.Message);
             }
         }
 </diff>
      <filename>Form1.cs</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,7 @@ namespace Reactive
 
     public interface IObserver&lt;T&gt;
     {        
-        void OnNext(T t);
+        void OnNext(T item);
         void OnDone();
         void OnError(Exception e);
     }
@@ -23,9 +23,9 @@ namespace Reactive
             _action = action;
         }
 
-        public void OnNext(T t)
+        public void OnNext(T item)
         {
-            _action(t);
+            _action(item);
         }
 
 </diff>
      <filename>IObservable.cs</filename>
    </modified>
    <modified>
      <diff>@@ -20,9 +20,9 @@ namespace Reactive
                 _onNext = onNext;
             }
 
-            public void OnNext(T2 t)
+            public void OnNext(T2 item)
             {
-                _onNext(t);
+                _onNext(item);
             }
 
             public void OnDone()</diff>
      <filename>ObserverBuilder.cs</filename>
    </modified>
    <modified>
      <diff>@@ -61,6 +61,7 @@
     &lt;/Compile&gt;
     &lt;Compile Include=&quot;IObservable.cs&quot; /&gt;
     &lt;Compile Include=&quot;ObserverBuilder.cs&quot; /&gt;
+    &lt;Compile Include=&quot;ObserverCollection.cs&quot; /&gt;
     &lt;Compile Include=&quot;SelectManyObservable.cs&quot; /&gt;
     &lt;Compile Include=&quot;SelectObservable.cs&quot; /&gt;
     &lt;Compile Include=&quot;Program.cs&quot; /&gt;</diff>
      <filename>Reactive.csproj</filename>
    </modified>
    <modified>
      <diff>@@ -19,27 +19,4 @@ namespace Reactive
         }
     }
 
-    //public class ObservableBuilder
-    //{
-    //    public static IObservable&lt;T&gt; Create&lt;T&gt;(Func&lt;IObserver&lt;T&gt;, IDisposable&gt; subscribe)
-    //    {
-    //        return new ObservableWrapper&lt;T&gt;(subscribe);
-    //    }
-
-    //    private class ObservableWrapper&lt;T&gt; : IObservable&lt;T&gt;
-    //    {
-    //        private readonly Func&lt;IObserver&lt;T&gt;, IDisposable&gt; _subscribe;
-
-    //        public ObservableWrapper(Func&lt;IObserver&lt;T&gt;, IDisposable&gt; subscribe)
-    //        {
-    //            _subscribe = subscribe;
-    //        }
-
-    //        public IDisposable Subscribe(IObserver&lt;T&gt; observer)
-    //        {
-    //            return _subscribe(observer);
-    //        }
-    //    }
-    //}
-
 }
\ No newline at end of file</diff>
      <filename>SelectObservable.cs</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>c6e516ae76429bcd8b610bca6b0ffa67aa131e86</id>
    </parent>
  </parents>
  <author>
    <name>Paul Batum</name>
    <email>paul.batum@gmail.com</email>
  </author>
  <url>http://github.com/paulbatum/Reactive/commit/a655578cf6981a73f7b9ecc5d2380f98824f97ec</url>
  <id>a655578cf6981a73f7b9ecc5d2380f98824f97ec</id>
  <committed-date>2009-07-19T02:20:19-07:00</committed-date>
  <authored-date>2009-07-19T02:20:19-07:00</authored-date>
  <message>Cleaned up dead code, made minor readability improvements.</message>
  <tree>e15ee93b4a120c38706deae02bdc878716d65eba</tree>
  <committer>
    <name>Paul Batum</name>
    <email>paul.batum@gmail.com</email>
  </committer>
</commit>
