     bindings
     - parameter viewModel: The `ComponentViewModel` associated to the `UIView`
     */
-    func bindings(_ observer: ViewObserver, viewModel: AnyObject)
+    func bindings(_ observer: ViewObserver, viewModel: ViewModelType)
 
     /**
      `ComponentViewController` class associated to the `ComponentView`

- *Future enhancements:* this protocol will be generic once we will be able to 
use generics with Storyboard/Xib
*/
public protocol ComponentView : class, ViewObserver, HasAssociatedObjects {
    /**
    Define the bindings between the fields (IBOutlet) and the ComponentViewModel
    

     - returns: The `ComponentViewController` type.
     The Default implementation returns `ComponentViewController.self`
     */
    static func componentControllerClass() -> AnyComponentController.Type
}

extension ComponentView {

    public static func componentControllerClass() -> AnyComponentController.Type {
        return ViewController<Self>.self
    }
}
