     }
 
     // default implementation of nil delegate, should be overriden when needed
-    weak var delegate: CoordinatorDelegate? {
+    var delegate: CoordinatorDelegate? {
         get {
             return nil
         }

    func configure(controller: ViewController)
    var navigationController: UINavigationController? { get }
    var presentationStyle: PresentationStyle { get }
    weak var destinationNavigationController: UINavigationController? { get }
}

public extension DefaultCoordinator {


public protocol DefaultCoordinator: Coordinator {
    associatedtype ViewController: UIViewController
    var viewController: ViewController? { get }

    var animated: Bool { get }
    var delegate: CoordinatorDelegate? { get set }
}

public protocol PushCoordinator: DefaultCoordinator {
