Question: I'm receiving the error:

> 
> Class AppDelegate has no initializers
> 
> 
> 

and cannot seem to understand why. I am following [this tutorial](https://www.youtube.com/watch?v=c-Uwa5v_3sc). I am a beginner so any help would be VERY appreciated!

My code:

```
import UIKit

@UIApplicationMain

class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?
    var centerContainer: MMDrawerController

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.

        _ = self.window!.rootViewController

        let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)

        let centerViewController = mainStoryboard.instantiateViewController(withIdentifier: "ViewController") as! ViewController

        let leftViewController = mainStoryboard.instantiateViewController(withIdentifier: "LeftSideViewController") as! LeftSideViewController

        let leftSideNav = UINavigationController(rootViewController: leftViewController)
        let centerNav = UINavigationController(rootViewController: centerViewController)

        centerContainer = MMDrawerController(center: centerNav, leftDrawerViewController: leftSideNav)

        centerContainer.openDrawerGestureModeMask = MMOpenDrawerGestureMode.panningCenterView;

        centerContainer.closeDrawerGestureModeMask = MMCloseDrawerGestureMode.panningCenterView;

        window!.rootViewController = centerContainer
        window!.makeKeyAndVisible()

        return true
    }
}

```

Answer: 
Since `centerContainer` isn't an optional and isn't given a default value, Swift expects an initializer function to give it one. There are a few possible solutions here:

1. Give it a default value. Probably not practical in this context.
2. Make it optional. Would work, but depending on how it's used might add a lot of unnecessary unwrapping to your code.
3. Make it an implicitly unwrapped optional. This is essentially saying "I can't/don't want to give this a default value or set it in an initializer, but I will definitely be giving it a value before I use it for anything." Usually the cleanest option for things like this, just be careful that you don't assign it `nil` at any point later in your code or things will break.
Make your `centerContainer` var optional like `window`. In swift, all of the properties must be initialized. When you make your var optional, you are initializing it as `nil`.

```
var centerContainer: MMDrawerController?

```