    - Parameter handler: A closure handling tap.
    - Returns: Dialog itself to allow chaining.
    */
+  @discardableResult
   open func negative(_ title: String?, handler: (() -> Void)?) -> Dialog {
     dialogView.negativeButton.title = title
     controller.didTapNegativeButtonHandler = { [unowned self] in

   - Parameter handler: A closure handling the event.
   - Returns: Dialog itself to allow chaining.
   */
  open func willAppear(handler: (() -> Void)?) -> Dialog {
    controller.willAppear = { [unowned self] in
      self.delegate?.dialogWillAppear?(self)

   - Parameter handler: A closure handling tap.
   - Returns: Dialog itself to allow chaining.
   */
  @discardableResult
  open func neutral(_ title: String?, handler: (() -> Void)?) -> Dialog {
    dialogView.neutralButton.title = title
    controller.didTapNeutralButtonHandler = { [unowned self] in
