public void execute() {
                    Input target = new Input() {

                        private static final long serialVersionUID = -806140334868210520L;

                        @Override
                        public void showMessage() {
                            AllZone.getDisplay().showMessage("Select target artifact you control");
                            ButtonUtil.disableAll();
                        }

                        @Override
                        public void selectCard(Card card, PlayerZone zone) {
                            if (card.isArtifact() && zone.is(Constant.Zone.Battlefield) && card.getController().isHuman()) {
                                ability.setTargetCard(card);
                                AllZone.getStack().add(ability);
                                stop();
                            }
                        }
                    };//Input target


                    if (card.getController().isHuman()) {
                        CardList artifacts = AllZoneUtil.getPlayerTypeInPlay(AllZone.getHumanPlayer(), "Artifact");

                        if (artifacts.size() != 0) AllZone.getInputControl().setInput(target);

                    } else { //computer
                        Object o = getArt.execute();
                        if (o != null)//should never happen, but just in case
                        {
                            ability.setTargetCard((Card) o);
                            AllZone.getStack().addSimultaneousStackEntry(ability);

                        }
                    }//else
                }