 import Foundation
 
 public class Observable<T> {
+
+    public typealias HandlerType = T -> Void
 
     // MARK: - Properties
 


    // MARK: Subscription

    public func subscribe(options: SubscriptionOptions = [.New], handler: (T -> Void)) -> Subscription<(T -> Void)> {
        let subscription = Subscription<(T -> Void)>(handler: handler)
        subscriptions.insert(subscription)

        if options.contains(.Initial) {

        return subscription
    }

    public func unsubscribe(subscriber: Subscription<HandlerType>) {
        subscriptions.remove(subscriber)
    }

