 }
 
 extension Drop {
-    private class func window() -> UIWindow? {
-        return UIApplication.sharedApplication().keyWindow
+    private class func window() -> UIWindow {
+        return UIApplication.sharedApplication().keyWindow!
     }
     
     private class func statusBarHeight() -> CGFloat {

    
    private class func down(status: String, state: DropState?, blur: DropBlur?) {
        self.upAll()
        if let window = window() {
            let drop = Drop(frame: CGRectZero)
            window.addSubview(drop)
            
            let sideConstraints = ([.Left, .Right] as [NSLayoutAttribute]).map {
                return NSLayoutConstraint(
                    item: window,
                    attribute: $0,
                    relatedBy: .Equal,
                    toItem: drop,
                    attribute: $0,
                    multiplier: 1.0,
                    constant: 0.0
                )
            }
            
            drop.topConstraint = NSLayoutConstraint(
                item: window,
                attribute: .Top,
                relatedBy: .Equal,
                toItem: drop,
                attribute: .Top,
                multiplier: 1.0,
                constant: drop.heightConstraint.constant
            )
            
            window.addConstraints(sideConstraints)
            window.addConstraint(drop.topConstraint)
            drop.setup(status, state: state, blur: blur)
            drop.updateHeight()
            
            drop.topConstraint.constant = 0.0
            UIView.animateWithDuration(
                NSTimeInterval(0.25),
                delay: NSTimeInterval(0.0),
                options: .AllowUserInteraction | .CurveEaseOut,
                animations: { [weak drop] () -> Void in
                    if let drop = drop { drop.layoutIfNeeded() }
                }, completion: nil
            )
        }
    }
    
    private class func up(drop: Drop, interval: NSTimeInterval) {
        drop.topConstraint.constant = drop.heightConstraint.constant
        UIView.animateWithDuration(
            interval,
            delay: NSTimeInterval(0.0),

    }
    
    public class func upAll() {
        for view in Drop.window().subviews {
            if let drop = view as? Drop {
                drop.up()
            }
        }
    }
