 
 // MARK: - UITableView support for Reusable & NibReusable
 
-extension UITableView {
+public extension UITableView {
   /**
    Register a NIB-Based `UITableViewCell` subclass (conforming to `NibReusable`)
    

/// Make your UITableViewCell and UICollectionViewCell subclasses
/// conform to this protocol when they are *not* NIB-based but only code-based
/// to be able to dequeue them in a type-safe manner
protocol Reusable: class {
  static var reuseIdentifier: String { get }
}

/// Make your UITableViewCell and UICollectionViewCell subclasses
/// conform to this protocol when they *are* NIB-based
/// to be able to dequeue them in a type-safe manner
protocol NibReusable: Reusable {
  static var nib: UINib { get }
}

extension Reusable {
  static var reuseIdentifier: String {
    return String(Self)
  }
}
extension NibReusable {
  static var nib: UINib {
    return UINib(nibName: String(Self), bundle: nil)
  }


// MARK: - UICollectionView support for Reusable & NibReusable

public extension UICollectionView {
  /**
   Register a NIB-Based `UICollectionViewCell` subclass (conforming to `NibReusable`)
   
