public void moveCard(GameSpot fromSpot, GameSpot toSpot, int numberOfCardsToMove) {
		Deck fromDeck = getDeck(fromSpot);
		Deck toDeck = getDeck(toSpot);
		if(ruleService.isGoingToResolutionPile(toSpot)){
			movingToResPile(fromSpot, toSpot, numberOfCardsToMove);
		}else{
			Deck fromCards = getFromCards(fromDeck,numberOfCardsToMove);
			Card fromCard =  getFromCard(fromCards, numberOfCardsToMove);
			if(ruleService.spotIsEmpty(toDeck)){
				if(fromCard.getRank() == Rank.KING){
					transferCards(fromCards, toDeck, fromDeck);
				}
			}else{
				Card toCard = toDeck.showTopCard();
				if(ruleService.isOppositeColor(fromCard, toCard)){
					if(ruleService.isOneBelow(fromCard, toCard)){
						transferCards(fromCards, toDeck, fromDeck);
						
					}
				}else{
					fromDeck.getCards().addAll(fromCards.getCards());
				}
			}	
		}
		Card card = fromDeck.getTopCard();
		try{
			if(!card.isFaceUp()){
				card.turnFaceUp();
			}fromDeck.addCard(card);
		}catch(NullPointerException e){
			
		}
	}