 	///	Returns either `parent` coordinator or `nil` if there isn‘t one
 	var coordinatingResponder: UIResponder? { get }
 
+	///	Tells the coordinator to start, which means at the end of this method it should
+	///	display some UIViewController
+	func start(with completion: @escaping () -> Void)
+
+	///	Tells the coordinator to stop, which means it should clear out any internal stuff
+	///	it possible tracks. I.e. list of shown UIViewControllers
+	func stop(with completion: @escaping () -> Void)
+
 	///	Call this method if the Coordinator is using UINavigationController
 	///	as rootViewController and customer has just pop-ed out of `coordinator` domain
 	///
 	///	This allows you to inform `coordinator.parent` it should activate something else
 	///	(like previous childCoordinator, if there is one)
-	func coordinatorDidFinish<T>(_ coordinator: Coordinator<T>)
+	func coordinatorDidFinish(_ coordinator: Coordinating)
 }
 
 

	///	etc.
	///
	///	- Parameter completion: An optional `Callback` executed at the end.
	open func start(with completion: @escaping (Coordinator<T>) -> Void = {_ in}) {
		completion(self)
	}

	/// Tells the coordinator that it is done and that it should

	}


	open func coordinatorDidFinish(_ coordinator: Coordinating) {
		stopChild(coordinator: coordinator)
	}

