let personService: PersonService private var personListViewController: PersonListViewController! private let addPersonCoordinator: AddPersonCoordinator init(presenter: UINavigationController, personService: PersonService) { self.presenter = presenter self.personService = personService addPersonCoordinator = AddPersonCoordinator( presenter: presenter, personService: personService ) } func start() { let storyboard = UIStoryboard(name: "PersonList", bundle: nil) personListViewController = storyboard.instantiateInitialViewController() as? PersonListViewController personListViewController.delegate = self personListViewController.personService = personService presenter.pushViewController(personListViewController, animated: true) addPersonCoordinator.delegate = self } func didTapAddPerson(_ sender: Any) { addPersonCoordinator.start() } }