   }
 }
 
-internal extension NSObject {
+public extension NSObject {
   
   internal var bnd_associatedObservables: [String:AnyObject] {
     get {

    }
  }
  
  internal func bnd_associatedObservableForValueForKey<T: OptionalType>(key: String, initial: T? = nil, set: (T -> ())? = nil) -> Observable<T> {
    if let observable: AnyObject = bnd_associatedObservables[key] {
      return observable as! Observable<T>
    } else {

    }
  }
  
  public func bnd_associatedObservableForValueForKey<T>(key: String, initial: T? = nil, set: (T -> ())? = nil) -> Observable<T> {
    if let observable: AnyObject = bnd_associatedObservables[key] {
      return observable as! Observable<T>
    } else {
