         }
     }
     
-    public init(initialValue:T?){
+    public init(initialValue:ValueType?){
         _value = initialValue
-        _changeListeners = Dictionary<NSObject, ((T?) -> Void)>()
+        _changeListeners = Dictionary<NSObject, ((ValueType?) -> Void)>()
     }
 
-    public func addListener(owner:NSObject, listener:(T?) -> Void, alertNow:Bool = false){
+    public func addListener(owner:NSObject, listener:(ValueType?) -> Void, alertNow:Bool = false){
         _changeListeners[owner] = listener
         
         if(alertNow){

            changeListener(_value)
        }
    }
}

import Foundation

public class BindableValue<ValueType:Any>{
    private var _value:ValueType?
    private var _changeListeners:Dictionary<NSObject, ((ValueType?) -> Void)>
    
    public var value:ValueType?{
        get{
            return _value
        }
