     
     public override init(_ value: Array<T>) {
         super.init(value)
-        observableCount.value = count
     }
     
     public subscript(index: Int) -> T {

    
    public func generate() -> ObservableArrayGenerator<T> {
        return ObservableArrayGenerator<T>(array: self)
    }
    
    override func dispatch(value: [T]) {
        observableCount.value = value.count
        super.dispatch(value)
    }
    
    private func dispatchWillReset(array: [T]) {

// MARK: Observable array

public class ObservableArray<T>: Observable<Array<T>>, SequenceType {
    public private(set) lazy var observableCount: Observable<Int> = self.map { $0.count }
    
    public override var value: Array<T> {
        willSet {
