 	Stops the given child coordinator and removes it from the
 
 	- Parameter coordinator: The coordinator implementation to start.
-	- Parameter callback: An optional `CoordinatorCallback` passed to the coordinator's `start()` method.
+	- Parameter completion: An optional `Callback` passed to the coordinator's `stop()` method.
 	*/
 	func stopChild(coordinator: Coordinator, completion: @escaping Callback = {_ in}) {
 		coordinator.stop { [unowned self] coordinator in



	/// Default identifier is the class name of the Coordinator
	var identifier: Identifier {
		return String(describing: self)
	}

	/// Parent Coordinator
	var parent: Coordinator?

	///	essentially an array of child coordinators
	private(set) var childCoordinators: [Identifier: Coordinator] = [:]





	/// Tells the coordinator to create its initial view controller and take over the user flow.
	///	Use this method to configure your `rootViewController` (if it isn't already).
	///	Some examples:
	///	* instantiate and assign `viewControllers` for UINavigationController or UITabBarController
	///	* assign itself (Coordinator) as delegate for the shown UIViewController(s)
	///	* setup closure entry/exit points
	///	etc.
	///
	///	- Parameter completion: An optional `Callback` executed at the end.
	func start(with completion: @escaping Callback = {_ in}) {}

	/// Tells the coordinator that it is done and that it should 
	///	rewind the view controller state to where it was before `start` was called.
	///	That means either dismiss presented controller or pop pushed ones.
	///
	///	- Parameter completion: An optional `Callback` executed at the end.
	func stop(with completion: @escaping Callback = {_ in}) {}


