 }
 
 public class ExpandCollapseModel<Parent: ParentTypeProtocol, Child: ChildTypeProtocol> {
-    private(set) public var items = [CellType<Parent, Child>]()
+    public var items = [CellType<Parent, Child>]()
     
     public init() {
         
-    }
-    
-    public func removeAll() {
-        items.removeAll()
     }
     
     public func append(child: Child) {

import UIKit

public protocol ChildCellProtocol {
    var parentIndex: Int? { get }
}

public protocol ParentCellProtocol {
    var isExpand: Bool { get }
    var childs: [(index: Int, isHidden: Bool)] { get }
    func append(childIndex: Int)
    func select()
    func isHidden(childIndex: Int) -> Bool

}

public class ChildCell<Value>: ChildCellProtocol {
    public var parentIndex: Int?
    public var value: Value
    
    public init(parentIndex: Int? = nil, value: Value) {
        self.parentIndex = parentIndex
        self.value = value
    }
}

public class ParentCell<Value>: ParentCellProtocol {
    public var value: Value
    public var isExpand: Bool
    public var childs = [(index: Int, isHidden: Bool)]()
    
    public init(value: Value, isExpand: Bool = false) {
        self.value = value
        self.isExpand = isExpand
    }
    
    public func append(childIndex: Int) {
