public static void handleAura(final Card card, final Card tgt, boolean gainControl){
		if (card.isEnchanting()){
			// If this Card is already Enchanting something
			// Need to unenchant it, then clear out the commands
			Card oldEnchanted = card.getEnchantingCard();
			card.removeEnchanting(oldEnchanted);
			card.clearEnchantCommand();
			card.clearUnEnchantCommand();
			card.clearTriggers();	// not sure if cleartriggers is needed?
		}
		
		if (gainControl){
			// Handle GainControl Auras
			final Player[] pl = new Player[1];
			pl[0] = tgt.getController();
			
	        Command onEnchant = new Command() {
				private static final long serialVersionUID = -2519887209491512000L;
	
				public void execute() {
	                if(card.isEnchanting()) {
	                    Card crd = card.getEnchanting().get(0);
	                    pl[0] = crd.getController();
	                    
	                    AllZone.getGameAction().changeController(new CardList(crd), pl[0], card.getController());
	                }
	            }//execute()
	        };//Command
	        
	        Command onUnEnchant = new Command() {
				private static final long serialVersionUID = 3426441132121179288L;
	
				public void execute() {
	                if(card.isEnchanting()) {
	                    Card crd = card.getEnchanting().get(0);
	                    if(AllZoneUtil.isCardInPlay(crd)) {
	                        AllZone.getGameAction().changeController(new CardList(crd), crd.getController(), pl[0]);
	                    }
	                }
	                
	            }//execute()
	        };//Command

            Command onChangesControl = new Command() {
                /** automatically generated serialVersionUID. */
				private static final long serialVersionUID = -65903786170234039L;

				public void execute() {
                    if(card.isEnchanting()) {
                        Card crd = card.getEnchanting().get(0);

                        AllZone.getGameAction().changeController(new CardList(crd), crd.getController(),card.getController());
                    }
                }//execute()
            };//Command
	        
	        Command onLeavesPlay = new Command() {
				private static final long serialVersionUID = -639204333673364477L;
	
				public void execute() {
	                if(card.isEnchanting()) {
	                    Card crd = card.getEnchanting().get(0);
	                    card.unEnchantCard(crd);
	                }
	            }
	        };//Command
			
	        // Add Enchant Commands
	        card.addEnchantCommand(onEnchant);
	        card.addUnEnchantCommand(onUnEnchant);
	        card.addLeavesPlayCommand(onLeavesPlay);
            card.addChangeControllerCommand(onChangesControl);
		}
		card.enchantCard(tgt);
	}