public void TakeTheCard(GameObject card, Action nextAction) { int handCardCount = _cards.Count; var cardMover = card.GetComponent <CardMovement>(); Action previousAction = () => { //Card game object needs to be added after determination of position in hand //for the correct placement that depends on the number of cards before taking //and it preferably needs to be added before coroutine moving _cards.Add(card); }; CardPlaceManager.PlaceReceivedCard(cardMover, handCardCount, previousAction, nextAction); }