 			if fabs(cornerRadius - backgroundView.cornerRadius) > CGFloat(DBL_EPSILON) {
 				backgroundView.cornerRadius = cornerRadius
 			}
+
+			configEventHandlers(backgroundView)
 		}
 	}
 

		view.borderColor = borderColor
		view.borderWidth = borderWidth
		view.cornerRadius = cornerRadius
		return view
	}
}

	@objc override var opaque: Bool {
		return backgroundColor?.alphaComponent == 1
	}

	private override func mouseDown(event: NSEvent) {
		super.mouseDown(event)

		mouseDown?()
	}

	private override func mouseUp(event: NSEvent) {
		super.mouseUp(event)

		mouseUp?()
	}
}

public class View: Element {
	private static let doNothing: View -> () = { _ in }

	public var backgroundColor: NSColor?
	public var borderColor: NSColor?
	public var borderWidth: CGFloat
	public var cornerRadius: CGFloat
	public var mouseDown: View -> ()
	public var mouseUp: View -> ()

	public init(backgroundColor: NSColor? = nil, borderColor: NSColor? = nil, borderWidth: CGFloat = 0, cornerRadius: CGFloat = 0, mouseDown: View -> () = doNothing, mouseUp: View -> () = doNothing) {
		self.backgroundColor = backgroundColor
		self.borderColor = borderColor
		self.borderWidth = borderWidth
		self.cornerRadius = cornerRadius
		self.mouseDown = mouseDown
		self.mouseUp = mouseUp
	}

	// MARK: Element
