 }
 
 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 {

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

    
    private class func down(status: String, state: DropState?, blur: DropBlur?) {
        self.upAll()
        let drop = Drop(frame: CGRectZero)
        Drop.window().addSubview(drop)
        
        let sideConstraints = ([.Left, .Right] as [NSLayoutAttribute]).map {
            return NSLayoutConstraint(
                item: drop,
                attribute: $0,
                relatedBy: .Equal,
                toItem: Drop.window(),
                attribute: $0,
                multiplier: 1.0,
                constant: 0.0
            )
        }
        
        drop.topConstraint = NSLayoutConstraint(
            item: drop,
            attribute: .Top,
            relatedBy: .Equal,
            toItem: Drop.window(),
            attribute: .Top,
            multiplier: 1.0,
            constant: -drop.heightConstraint.constant
        )
        
        Drop.window().addConstraints(sideConstraints)
        Drop.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),
