      
      - returns: An initialized UIControl.
      */
-    init(actionClosure: (Self) -> Void) {
+    public init(actionClosure: (Self) -> Void) {
         self.init()
         action = Action(action: actionClosure)
         addTarget(self, action: #selector(handleAction), forControlEvents: .TouchUpInside)

    
}

extension Actionable where Self : UIControl {
    
    private var action: Action<Self>? {
        set { objc_setAssociatedObject(self, &AssociatedKeys.ActionName, newValue, .OBJC_ASSOCIATION_RETAIN) }

// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.

public protocol Actionable: NSObjectProtocol {
    
    init(actionClosure: (Self) -> Void)
    init(frame: CGRect, actionClosure: (Self) -> Void)
