diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.java b/Mage.Client/src/main/java/mage/client/MageFrame.java
index 927ff9248c..f1e6a9af34 100644
--- a/Mage.Client/src/main/java/mage/client/MageFrame.java
+++ b/Mage.Client/src/main/java/mage/client/MageFrame.java
@@ -34,7 +34,6 @@
 
 package mage.client;
 
-import java.io.FileNotFoundException;
 import mage.cards.Card;
 import mage.cards.decks.Deck;
 import mage.client.cards.CardsStorage;
@@ -50,7 +49,6 @@ import mage.client.remote.Session;
 import mage.client.util.EDTExceptionHandler;
 import mage.client.util.gui.ArrowBuilder;
 import mage.components.ImagePanel;
-import mage.game.GameException;
 import mage.util.Logging;
 
 import javax.imageio.ImageIO;
@@ -70,7 +68,6 @@ import java.util.logging.Level;
 import java.util.logging.Logger;
 import java.util.prefs.Preferences;
 import mage.client.draft.DraftPane;
-import mage.sets.Sets;
 
 /**
  * @author BetaSteward_at_googlemail.com
@@ -156,6 +153,11 @@ public class MageFrame extends javax.swing.JFrame {
         addMageLabel();
         setAppIcon();
 
+		//PlayerPanelNew n = new PlayerPanelNew();
+		//n.setBounds(100,100,100,300);
+		//n.setVisible(true);
+		//backgroundPane.add(n);
+
         desktopPane.add(ArrowBuilder.getArrowsPanel(), JLayeredPane.DRAG_LAYER);
 
         desktopPane.addComponentListener(new ComponentAdapter() {
diff --git a/Mage.Client/src/main/java/mage/client/cards/BigCard.java b/Mage.Client/src/main/java/mage/client/cards/BigCard.java
index 71208e84a6..4c1da527b2 100644
--- a/Mage.Client/src/main/java/mage/client/cards/BigCard.java
+++ b/Mage.Client/src/main/java/mage/client/cards/BigCard.java
@@ -35,6 +35,7 @@
 package mage.client.cards;
 
 import mage.client.plugins.impl.Plugins;
+import mage.client.util.ImageHelper;
 import mage.client.util.gui.BufferedImageBuilder;
 import mage.filters.FilterFactory;
 import mage.filters.impl.HueFilter;
@@ -69,9 +70,9 @@ public class BigCard extends JComponent {
     protected float hue = 0.005f;
     protected float dh = 0.005f;
 
-    static private final int DEFAULT_DELAY_PERIOD = 30;
-    static private final float LEFT_BOUNDARY = 0.0f;
-    static private final float RIGHT_BOUNDARY = 1f;
+    static private final int DEFAULT_DELAY_PERIOD = 50;
+    static private final float LEFT_BOUNDARY = -0.15f;
+    static private final float RIGHT_BOUNDARY = 0.15f;
 
     public BigCard() {
         initComponents();
@@ -79,7 +80,6 @@ public class BigCard extends JComponent {
             initBounds();
         }
         setDoubleBuffered(true);
-        setOpaque(true);
     }
 
     protected void initBounds() {
@@ -252,9 +252,9 @@ public class BigCard extends JComponent {
         setFocusable(false);
         setMinimumSize(new Dimension(FRAME_MAX_WIDTH, FRAME_MAX_HEIGHT));
         setMaximumSize(new Dimension(FRAME_MAX_WIDTH, FRAME_MAX_HEIGHT));
-        setOpaque(false);
         setPreferredSize(getMinimumSize());
         setLayout(null);
+		//setBackground(new Color(255,255,255,200));
 
         scrollPane.setBorder(null);
         scrollPane.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
@@ -268,6 +268,10 @@ public class BigCard extends JComponent {
         add(scrollPane);
     }// </editor-fold>//GEN-END:initComponents
 
+	public void setDefaultImage() {
+	   	bigImage = ImageHelper.getImageFromResources("/empty.png");
+		bigImage = ImageHelper.getResizedImage((BufferedImage) bigImage, getWidth(), getHeight());
+	}
 
     // Variables declaration - do not modify//GEN-BEGIN:variables
     private javax.swing.JScrollPane scrollPane;
diff --git a/Mage.Client/src/main/java/mage/client/cards/Card.java b/Mage.Client/src/main/java/mage/client/cards/Card.java
index 7e080ed16c..58596c2e5e 100644
--- a/Mage.Client/src/main/java/mage/client/cards/Card.java
+++ b/Mage.Client/src/main/java/mage/client/cards/Card.java
@@ -382,8 +382,6 @@ public class Card extends MagePermanent implements MouseMotionListener, MouseLis
 			List<UUID> targets = card.getTargets();
 			if (targets != null) {
 				for (UUID uuid : targets) {
-					//System.out.println("Getting play area panel for uuid: " + uuid);
-					
 					PlayAreaPanel p = session.getGame().getPlayers().get(uuid);
 					if (p != null) {
 						Point target = p.getLocationOnScreen();
diff --git a/Mage.Client/src/main/java/mage/client/cards/Cards.java b/Mage.Client/src/main/java/mage/client/cards/Cards.java
index f98722137b..0e9492eebe 100644
--- a/Mage.Client/src/main/java/mage/client/cards/Cards.java
+++ b/Mage.Client/src/main/java/mage/client/cards/Cards.java
@@ -51,6 +51,10 @@ import mage.view.CardsView;
 import mage.view.PermanentView;
 import mage.view.StackAbilityView;
 
+import javax.swing.*;
+import javax.swing.border.Border;
+import javax.swing.border.EmptyBorder;
+
 /**
  *
  * @author BetaSteward_at_googlemail.com
@@ -63,15 +67,29 @@ public class Cards extends javax.swing.JPanel {
 
 	/** Creates new form Cards */
     public Cards() {
-        initComponents();
+    	this(false);
+    }
+
+	public Cards(boolean skipAddingScrollPane) {
+		initComponents(skipAddingScrollPane);
         setOpaque(false);
-        jScrollPane1.setOpaque(false);
-        jScrollPane1.getViewport().setOpaque(false);
-        cardArea.setOpaque(false);
+		cardArea.setOpaque(false);
+        if (!skipAddingScrollPane) {
+			jScrollPane1.setOpaque(false);
+			jScrollPane1.getViewport().setOpaque(false);
+		}
         if (Plugins.getInstance().isCardPluginLoaded()) {
         	cardArea.setLayout(null);
         }
-    }
+	}
+
+	public void setBorder(Border border) {
+		super.setBorder(border);
+		if (jScrollPane1 != null) {
+			jScrollPane1.setViewportBorder(border);
+			jScrollPane1.setBorder(border);
+		}
+	}
 
 	public boolean loadCards(CardsView cardsView, BigCard bigCard, UUID gameId) {
 		boolean changed = false;
@@ -157,20 +175,21 @@ public class Cards extends javax.swing.JPanel {
      */
     @SuppressWarnings("unchecked")
     // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
-    private void initComponents() {
-
-        jScrollPane1 = new javax.swing.JScrollPane();
-        cardArea = new javax.swing.JPanel();
-
-        setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
+    private void initComponents(boolean skipAddingScrollPane) {
+        setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0, 0)));
         setLayout(new java.awt.BorderLayout());
 
-        jScrollPane1.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
+		cardArea = new javax.swing.JPanel();
+		cardArea.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 0, 0));
 
-        cardArea.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 0, 0));
-        jScrollPane1.setViewportView(cardArea);
-
-        add(jScrollPane1, java.awt.BorderLayout.CENTER);
+		if (skipAddingScrollPane) {
+			add(cardArea, java.awt.BorderLayout.CENTER);
+		} else{
+			jScrollPane1 = new javax.swing.JScrollPane();
+			jScrollPane1.setViewportView(cardArea);
+			jScrollPane1.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
+			add(jScrollPane1, java.awt.BorderLayout.CENTER);
+		}
     }// </editor-fold>//GEN-END:initComponents
 
 
@@ -184,10 +203,14 @@ public class Cards extends javax.swing.JPanel {
 	}
     
     public void setHScrollSpeed(int unitIncrement) {
-    	jScrollPane1.getHorizontalScrollBar().setUnitIncrement(unitIncrement);
+    	if (jScrollPane1 != null) {
+			jScrollPane1.getHorizontalScrollBar().setUnitIncrement(unitIncrement);
+		}
     }
     
     public void setVScrollSpeed(int unitIncrement) {
-    	jScrollPane1.getVerticalScrollBar().setUnitIncrement(unitIncrement);
+    	if (jScrollPane1 != null) {
+			jScrollPane1.getVerticalScrollBar().setUnitIncrement(unitIncrement);
+		}
     }
 }
diff --git a/Mage.Client/src/main/java/mage/client/components/HoverButton.java b/Mage.Client/src/main/java/mage/client/components/HoverButton.java
index 83dab1f3a8..ce0176dcd7 100644
--- a/Mage.Client/src/main/java/mage/client/components/HoverButton.java
+++ b/Mage.Client/src/main/java/mage/client/components/HoverButton.java
@@ -168,4 +168,8 @@ public class HoverButton extends JPanel implements MouseListener {
     public void changeSelected() {
         this.isSelected = !this.isSelected;
     }
+
+	public void setText(String text) {
+		this.text = text;
+	}
 }
diff --git a/Mage.Client/src/main/java/mage/client/components/MageRoundPane.java b/Mage.Client/src/main/java/mage/client/components/MageRoundPane.java
index 1460445506..867830f25a 100644
--- a/Mage.Client/src/main/java/mage/client/components/MageRoundPane.java
+++ b/Mage.Client/src/main/java/mage/client/components/MageRoundPane.java
@@ -18,10 +18,10 @@ import javax.swing.JPanel;
  */
 public class MageRoundPane extends JPanel {
 
-    private static int X_OFFSET = 30;
-    private static int Y_OFFSET = 30;
+    private int X_OFFSET = 30;
+    private int Y_OFFSET = 30;
     private BufferedImage shadow = null;
-    private Color backgroundColor = new Color(255, 255, 255, 220);
+    private Color backgroundColor = new Color(255, 255, 255, 200);
     private int alpha = 0;
 
     @Override
@@ -66,6 +66,14 @@ public class MageRoundPane extends JPanel {
         g2.dispose();
     }
 
+	public void setXOffset(int x_offset) {
+		X_OFFSET = x_offset;
+	}
+
+	public void setYOffset(int y_offset) {
+		Y_OFFSET = y_offset;
+	}
+
     @Override
     public void setBounds(int x, int y, int width, int height) {
         super.setBounds(x, y, width, height);
diff --git a/Mage.Client/src/main/java/mage/client/components/arcane/ManaSymbols.java b/Mage.Client/src/main/java/mage/client/components/arcane/ManaSymbols.java
index 726aecd3f0..832b95fa79 100644
--- a/Mage.Client/src/main/java/mage/client/components/arcane/ManaSymbols.java
+++ b/Mage.Client/src/main/java/mage/client/components/arcane/ManaSymbols.java
@@ -20,7 +20,7 @@ import java.util.regex.Pattern;
 
 public class ManaSymbols {
 	private static final Logger log = Logger.getLogger(ManaSymbols.class);
-	static private final Map<String, Image> manaImages = new HashMap<String, Image>();
+	static private final Map<String, BufferedImage> manaImages = new HashMap<String, BufferedImage>();
 	static private final Map<String, Image> manaImagesOriginal = new HashMap<String, Image>();
 	static private final Map<String, Image> setImages = new HashMap<String, Image>();
 	static private Pattern replaceSymbolsPattern = Pattern.compile("\\{([^}/]*)/?([^}]*)\\}");
@@ -107,6 +107,10 @@ public class ManaSymbols {
 		return manaImagesOriginal.get(symbol);
 	}
 
+	static public BufferedImage getManaSymbolImageSmall(String symbol) {
+		return manaImages.get(symbol);
+	}
+
 	static public Image getSetSymbolImage(String set) {
 		return setImages.get(set);
 	}
diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPane.java b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPane.java
index 3f9946f323..b499405727 100644
--- a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPane.java
+++ b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPane.java
@@ -66,7 +66,7 @@ public class CollectionViewerPane extends MagePane {
     }
 
     private void initComponents(Component container) {
-        Component component = container != null ? container : collectionViewerPanel;
+        Component component = container != null ? container : new CollectionViewerPanel();
 
         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
         getContentPane().setLayout(layout);
diff --git a/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java b/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java
index d892b9b29b..0a2e397cbe 100644
--- a/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java
+++ b/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java
@@ -71,9 +71,7 @@ public class BattlefieldPanel extends javax.swing.JLayeredPane {
 	private BigCard bigCard;
 	private Map<String, JComponent> ui = new HashMap<String, JComponent>();
 
-	protected static DefaultActionCallback defaultCallback = DefaultActionCallback.getInstance();
 	protected static Map<UUID, PermanentView> battlefield;
-	protected static Map<UUID, Integer> attachmentCache = new HashMap<UUID, Integer>();
 	protected static List<Thread> threads = new ArrayList<Thread>();
 	
     /** Creates new form BattlefieldPanel */
@@ -277,8 +275,8 @@ public class BattlefieldPanel extends javax.swing.JLayeredPane {
     // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
     private void initComponents() {
 
-        setBackground(java.awt.Color.gray);
-        setForeground(java.awt.Color.gray);
+        //setBackground(java.awt.Color.gray);
+        //setForeground(java.awt.Color.gray);
         setOpaque(true);
     }// </editor-fold>//GEN-END:initComponents
 
diff --git a/Mage.Client/src/main/java/mage/client/game/FeedbackPanel.java b/Mage.Client/src/main/java/mage/client/game/FeedbackPanel.java
index 6301ec81bc..5f5eafff38 100644
--- a/Mage.Client/src/main/java/mage/client/game/FeedbackPanel.java
+++ b/Mage.Client/src/main/java/mage/client/game/FeedbackPanel.java
@@ -187,7 +187,7 @@ public class FeedbackPanel extends javax.swing.JPanel {
         lblMessage = new MageTextArea();
         btnSpecial = new javax.swing.JButton();
 
-        setBackground(new java.awt.Color(204, 204, 204));
+        setBackground(new java.awt.Color(255,255,255,200));
 
         btnRight.setText("Cancel");
         btnRight.addActionListener(new java.awt.event.ActionListener() {
diff --git a/Mage.Client/src/main/java/mage/client/game/GamePanel.java b/Mage.Client/src/main/java/mage/client/game/GamePanel.java
index 1ea8122052..6b6be4b863 100644
--- a/Mage.Client/src/main/java/mage/client/game/GamePanel.java
+++ b/Mage.Client/src/main/java/mage/client/game/GamePanel.java
@@ -34,9 +34,7 @@
 
 package mage.client.game;
 
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.GridBagConstraints;
+import java.awt.*;
 import java.awt.event.ComponentAdapter;
 import java.awt.event.ComponentEvent;
 import java.util.HashMap;
@@ -46,12 +44,14 @@ import java.util.UUID;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import javax.swing.JComponent;
-import javax.swing.JLayeredPane;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
+import javax.swing.*;
+import javax.swing.border.Border;
+import javax.swing.border.EmptyBorder;
+import javax.swing.border.LineBorder;
 
 import mage.client.MageFrame;
+import mage.client.cards.Cards;
+import mage.client.deckeditor.collection.viewer.MageBook;
 import mage.client.dialog.ExileZoneDialog;
 import mage.client.dialog.PickChoiceDialog;
 import mage.client.dialog.ShowCardsDialog;
@@ -225,7 +225,7 @@ public class GamePanel extends javax.swing.JPanel {
 			}
 		}
 		PlayerView player = game.getPlayers().get(playerSeat);
-		PlayAreaPanel sessionPlayer = new PlayAreaPanel(player, bigCard, gameId);
+		PlayAreaPanel sessionPlayer = new PlayAreaPanel(player, bigCard, gameId, true);
 		players.put(player.getPlayerId(), sessionPlayer);
 		GridBagConstraints c = new GridBagConstraints();
 		c.fill = GridBagConstraints.BOTH;
@@ -252,7 +252,7 @@ public class GamePanel extends javax.swing.JPanel {
 				col = numColumns - 1;
 			}
 			player = game.getPlayers().get(playerNum);
-			PlayAreaPanel playerPanel = new PlayAreaPanel(player, bigCard, gameId);
+			PlayAreaPanel playerPanel = new PlayAreaPanel(player, bigCard, gameId, false);
 			players.put(player.getPlayerId(), playerPanel);
 			c = new GridBagConstraints();
 			c.fill = GridBagConstraints.BOTH;
@@ -271,10 +271,13 @@ public class GamePanel extends javax.swing.JPanel {
 	}
 
 	public synchronized void updateGame(GameView game) {
-		if (playerId == null || game.getHand() == null)
+		if (playerId == null || game.getHand() == null) {
 			this.hand.setVisible(false);
-		else
+		} else {
 			this.hand.loadCards(game.getHand(), bigCard, gameId);
+			int count = game.getHand().size();
+			hand.setPreferredSize(new java.awt.Dimension((Config.dimensions.frameWidth + 5) * count + 5, Config.dimensions.frameHeight + 20)); // for scroll
+		}
 		if (game.getPhase() != null)
 			this.txtPhase.setText(game.getPhase().toString());
 		else
@@ -447,7 +450,7 @@ public class GamePanel extends javax.swing.JPanel {
         btnPreviousPlay = new javax.swing.JButton();
         btnNextPlay = new javax.swing.JButton();
         pnlBattlefield = new javax.swing.JPanel();
-        hand = new mage.client.cards.Cards();
+        hand = new mage.client.cards.Cards(true);
         chatPanel = new mage.client.chat.ChatPanel();
 
         jSplitPane1.setBorder(null);
@@ -455,8 +458,9 @@ public class GamePanel extends javax.swing.JPanel {
         jSplitPane1.setResizeWeight(1.0);
         jSplitPane1.setOneTouchExpandable(true);
         jSplitPane1.setMinimumSize(new java.awt.Dimension(26, 48));
-
-        pnlGameInfo.setBorder(javax.swing.BorderFactory.createEtchedBorder());
+		jSplitPane1.setDividerLocation(Integer.MAX_VALUE);
+        //pnlGameInfo.setBorder(javax.swing.BorderFactory.createEtchedBorder());
+		pnlGameInfo.setOpaque(false);
 
         lblPhase.setLabelFor(txtPhase);
         lblPhase.setText("Phase:");
@@ -497,6 +501,8 @@ public class GamePanel extends javax.swing.JPanel {
         feedbackPanel.setMaximumSize(new java.awt.Dimension(208, 121));
         feedbackPanel.setMinimumSize(new java.awt.Dimension(208, 121));
 
+		bigCard.setBorder(new LineBorder(Color.black, 1, true));
+
         btnConcede.setText("Concede");
         btnConcede.addActionListener(new java.awt.event.ActionListener() {
             public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -556,44 +562,44 @@ public class GamePanel extends javax.swing.JPanel {
         javax.swing.GroupLayout pnlGameInfoLayout = new javax.swing.GroupLayout(pnlGameInfo);
         pnlGameInfo.setLayout(pnlGameInfoLayout);
         pnlGameInfoLayout.setHorizontalGroup(
-            pnlGameInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(pnlGameInfoLayout.createSequentialGroup()
-                .addContainerGap()
-                .addGroup(pnlGameInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                    .addComponent(lblPriority)
-                    .addComponent(lblPhase)
-                    .addComponent(lblStep)
-                    .addComponent(lblTurn)
-                    .addComponent(lblActivePlayer))
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addGroup(pnlGameInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                    .addComponent(txtActivePlayer, javax.swing.GroupLayout.DEFAULT_SIZE, 159, Short.MAX_VALUE)
-                    .addComponent(txtPriority, javax.swing.GroupLayout.DEFAULT_SIZE, 159, Short.MAX_VALUE)
-                    .addComponent(txtTurn, javax.swing.GroupLayout.DEFAULT_SIZE, 159, Short.MAX_VALUE)
-                    .addComponent(txtStep, javax.swing.GroupLayout.DEFAULT_SIZE, 159, Short.MAX_VALUE)
-                    .addComponent(txtPhase, javax.swing.GroupLayout.DEFAULT_SIZE, 159, Short.MAX_VALUE))
-                .addContainerGap())
-            .addGroup(pnlGameInfoLayout.createSequentialGroup()
-                .addGap(10, 10, 10)
-                .addComponent(btnConcede)
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addComponent(btnStopWatching)
-                .addContainerGap(62, Short.MAX_VALUE))
-            .addComponent(bigCard, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE)
-            .addComponent(feedbackPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE)
-            .addComponent(stack, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE)
-            .addGroup(pnlGameInfoLayout.createSequentialGroup()
-                .addContainerGap()
-                .addComponent(pnlReplay, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addContainerGap(51, Short.MAX_VALUE))
-        );
+				pnlGameInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+						/*.addGroup(pnlGameInfoLayout.createSequentialGroup()
+										.addContainerGap()
+										.addGroup(pnlGameInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+											.addComponent(lblPriority)
+											.addComponent(lblPhase)
+											.addComponent(lblStep)
+											.addComponent(lblTurn)
+											.addComponent(lblActivePlayer))
+										.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+										.addGroup(pnlGameInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+											.addComponent(txtActivePlayer, javax.swing.GroupLayout.DEFAULT_SIZE, 159, Short.MAX_VALUE)
+											.addComponent(txtPriority, javax.swing.GroupLayout.DEFAULT_SIZE, 159, Short.MAX_VALUE)
+											.addComponent(txtTurn, javax.swing.GroupLayout.DEFAULT_SIZE, 159, Short.MAX_VALUE)
+											.addComponent(txtStep, javax.swing.GroupLayout.DEFAULT_SIZE, 159, Short.MAX_VALUE)
+											.addComponent(txtPhase, javax.swing.GroupLayout.DEFAULT_SIZE, 159, Short.MAX_VALUE))
+										.addContainerGap())*/
+						.addGroup(pnlGameInfoLayout.createSequentialGroup()
+								.addGap(10, 10, 10)
+								.addComponent(btnConcede)
+								.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+								.addComponent(btnStopWatching)
+								.addContainerGap(62, Short.MAX_VALUE))
+						.addComponent(bigCard, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE)
+						.addComponent(feedbackPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE)
+						.addComponent(stack, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE)
+						.addGroup(pnlGameInfoLayout.createSequentialGroup()
+								.addContainerGap()
+								.addComponent(pnlReplay, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+								.addContainerGap(51, Short.MAX_VALUE))
+		);
         pnlGameInfoLayout.setVerticalGroup(
             pnlGameInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(pnlGameInfoLayout.createSequentialGroup()
                 .addComponent(bigCard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                 .addGap(1, 1, 1)
                 .addComponent(feedbackPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addGap(7, 7, 7)
+                /*.addGap(7, 7, 7)
                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                 .addGroup(pnlGameInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                     .addComponent(lblPhase)
@@ -615,7 +621,8 @@ public class GamePanel extends javax.swing.JPanel {
                     .addComponent(lblPriority)
                     .addComponent(txtPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addComponent(stack, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                */
+				.addComponent(stack, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 164, Short.MAX_VALUE)
                 .addComponent(pnlReplay, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
@@ -626,7 +633,9 @@ public class GamePanel extends javax.swing.JPanel {
 
         pnlBattlefield.setLayout(new java.awt.GridBagLayout());
 
-        hand.setPreferredSize(new java.awt.Dimension(Config.dimensions.frameWidth, Config.dimensions.frameHeight + 25));
+        //hand.setPreferredSize(new java.awt.Dimension(Config.dimensions.frameWidth, Config.dimensions.frameHeight + 20)); // for scroll
+		hand.setBorder(emptyBorder);
+		HandContainer handContainer = new HandContainer(hand);
 
         javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
         jPanel3.setLayout(jPanel3Layout);
@@ -636,15 +645,16 @@ public class GamePanel extends javax.swing.JPanel {
                 .addComponent(pnlGameInfo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                 .addGap(0, 0, 0)
                 .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                    .addComponent(hand, javax.swing.GroupLayout.DEFAULT_SIZE, 715, Short.MAX_VALUE)
-                    .addComponent(pnlBattlefield, javax.swing.GroupLayout.DEFAULT_SIZE, 715, Short.MAX_VALUE)))
+                    .addComponent(handContainer, javax.swing.GroupLayout.DEFAULT_SIZE, 715, Short.MAX_VALUE)
+                    .addComponent(pnlBattlefield, javax.swing.GroupLayout.DEFAULT_SIZE, 715, Short.MAX_VALUE)
+				))
         );
         jPanel3Layout.setVerticalGroup(
             jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
                 .addComponent(pnlBattlefield, javax.swing.GroupLayout.DEFAULT_SIZE, 794, Short.MAX_VALUE)
                 .addGap(0, 0, 0)
-                .addComponent(hand, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+                .addComponent(handContainer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
             .addComponent(pnlGameInfo, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
         );
 
@@ -664,6 +674,13 @@ public class GamePanel extends javax.swing.JPanel {
             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addComponent(jSplitPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 798, Short.MAX_VALUE)
         );
+
+		SwingUtilities.invokeLater(new Runnable() {
+			@Override
+			public void run() {
+				bigCard.setDefaultImage();
+			}
+		});
     }
 
 	private void btnConcedeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnConcedeActionPerformed
@@ -692,6 +709,39 @@ public class GamePanel extends javax.swing.JPanel {
 		session.previousPlay();
 	}//GEN-LAST:event_btnPreviousPlayActionPerformed
 
+	private class HandContainer extends JPanel {
+
+        public HandContainer(Cards hand) {
+            super();
+            initComponents(hand);
+        }
+
+        public void initComponents(Cards hand) {
+            jPanel = new JPanel();
+            jScrollPane1 = new JScrollPane(jPanel);
+            jScrollPane1.getViewport().setBackground(new Color(0,0,0,0));
+
+            jPanel.setLayout(new GridBagLayout()); // centers hand
+            jPanel.setBackground(new Color(0,0,0,0));
+            jPanel.add(hand);
+
+			setOpaque(false);
+			jPanel.setOpaque(false);
+			jScrollPane1.setOpaque(false);
+
+			jPanel.setBorder(emptyBorder);
+			jScrollPane1.setBorder(emptyBorder);
+			jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
+			jScrollPane1.getHorizontalScrollBar().setUnitIncrement(8);
+
+            setLayout(new java.awt.BorderLayout());
+            add(jScrollPane1, java.awt.BorderLayout.CENTER);
+        }
+
+        private JPanel jPanel;
+        private javax.swing.JScrollPane jScrollPane1;
+    }
+
     // Variables declaration - do not modify//GEN-BEGIN:variables
     private mage.client.game.AbilityPicker abilityPicker;
     private mage.client.cards.BigCard bigCard;
@@ -721,4 +771,5 @@ public class GamePanel extends javax.swing.JPanel {
     private javax.swing.JLabel txtTurn;
     // End of variables declaration//GEN-END:variables
 
+	private Border emptyBorder = new EmptyBorder(0,0,0,0);
 }
diff --git a/Mage.Client/src/main/java/mage/client/game/PlayAreaPanel.java b/Mage.Client/src/main/java/mage/client/game/PlayAreaPanel.java
index e73831fb5f..391e340d65 100644
--- a/Mage.Client/src/main/java/mage/client/game/PlayAreaPanel.java
+++ b/Mage.Client/src/main/java/mage/client/game/PlayAreaPanel.java
@@ -34,18 +34,22 @@
 
 package mage.client.game;
 
+import java.awt.*;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.util.UUID;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import mage.cards.decks.DeckCardLists;
 import mage.client.MageFrame;
 import mage.client.cards.BigCard;
 import mage.sets.Sets;
 import mage.view.PlayerView;
 
+import javax.swing.*;
+import javax.swing.border.Border;
+import javax.swing.border.EmptyBorder;
+
 /**
  *
  * @author BetaSteward_at_googlemail.com
@@ -56,16 +60,17 @@ public class PlayAreaPanel extends javax.swing.JPanel {
 	UUID gameId;
 
     /** Creates new form PlayAreaPanel */
-    public PlayAreaPanel() {
-        initComponents();
-        setOpaque(false);
+    public PlayAreaPanel(boolean me) {
+        initComponents(me);
+		setOpaque(false);
+		jPanel1.setOpaque(false);
         jScrollPane1.setOpaque(false);
         jScrollPane1.getViewport().setOpaque(false);
         battlefieldPanel.setOpaque(false);
-    }
+	}
 
-	public PlayAreaPanel(PlayerView player, BigCard bigCard, UUID gameId) {
-		this();
+	public PlayAreaPanel(PlayerView player, BigCard bigCard, UUID gameId, boolean me) {
+		this(me);
 		init(player, bigCard, gameId);
 		update(player);
 	}
@@ -85,7 +90,6 @@ public class PlayAreaPanel extends javax.swing.JPanel {
 
 	public void update(PlayerView player) {
 		this.playerPanel.update(player);
-		this.manaPool.update(player.getManaPool());
 		this.battlefieldPanel.update(player.getBattlefield());
 	}
 
@@ -100,16 +104,17 @@ public class PlayAreaPanel extends javax.swing.JPanel {
      */
     @SuppressWarnings("unchecked")
     // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
-    private void initComponents() {
-
+    private void initComponents(boolean me) {
+		setBorder(BorderFactory.createLineBorder(new Color(0,0,0,0)));
         jPanel1 = new javax.swing.JPanel();
-        playerPanel = new mage.client.game.PlayerPanel();
-        manaPool = new mage.client.game.ManaPool();
+        playerPanel = new PlayerPanelExt(me);
+		playerPanel.setPreferredSize(new Dimension(92, 250));
+		//manaPool = new mage.client.game.ManaPool();
         btnCheat = new javax.swing.JButton();
         jScrollPane1 = new javax.swing.JScrollPane();
         battlefieldPanel = new mage.client.game.BattlefieldPanel(jScrollPane1);
 
-        jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
+        //jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
 
         btnCheat.setText("Cheat");
         btnCheat.addActionListener(new java.awt.event.ActionListener() {
@@ -118,26 +123,29 @@ public class PlayAreaPanel extends javax.swing.JPanel {
             }
         });
 
-
         javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
         jPanel1.setLayout(jPanel1Layout);
         jPanel1Layout.setHorizontalGroup(
             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addComponent(manaPool, javax.swing.GroupLayout.DEFAULT_SIZE, 116, Short.MAX_VALUE)
+            //.addComponent(manaPool, javax.swing.GroupLayout.DEFAULT_SIZE, 116, Short.MAX_VALUE)
             .addComponent(playerPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-            .addComponent(btnCheat, javax.swing.GroupLayout.DEFAULT_SIZE, 116, Short.MAX_VALUE)
+            //.addComponent(btnCheat, javax.swing.GroupLayout.DEFAULT_SIZE, 116, Short.MAX_VALUE)
         );
         jPanel1Layout.setVerticalGroup(
             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(jPanel1Layout.createSequentialGroup()
                 .addComponent(playerPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addGap(0, 0, 0)
-                .addComponent(manaPool, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 17, Short.MAX_VALUE)
-                .addComponent(btnCheat))
+                //.addGap(0, 0, 0)
+                //.addComponent(manaPool, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                //.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 17, Short.MAX_VALUE)
+                //.addComponent(btnCheat)
+			)
         );
 
         jScrollPane1.setViewportView(battlefieldPanel);
+		Border empty = new EmptyBorder(0,0,0,0);
+		jScrollPane1.setBorder(empty);
+		jScrollPane1.setViewportBorder(empty);
 
         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
         this.setLayout(layout);
@@ -146,11 +154,12 @@ public class PlayAreaPanel extends javax.swing.JPanel {
             .addGroup(layout.createSequentialGroup()
                 .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                 .addGap(0, 0, 0)
-                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 357, Short.MAX_VALUE))
+                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 357, Short.MAX_VALUE)
+			)
         );
         layout.setVerticalGroup(
             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 278, Short.MAX_VALUE)
+            .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 250, Short.MAX_VALUE)
             .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
         );
     }// </editor-fold>//GEN-END:initComponents
@@ -170,8 +179,8 @@ public class PlayAreaPanel extends javax.swing.JPanel {
 	private javax.swing.JButton btnCheat;
     private javax.swing.JPanel jPanel1;
     private javax.swing.JScrollPane jScrollPane1;
-    private mage.client.game.ManaPool manaPool;
-    private mage.client.game.PlayerPanel playerPanel;
+    //private mage.client.game.ManaPool manaPool;
+    private PlayerPanelExt playerPanel;
     // End of variables declaration//GEN-END:variables
 
 }
diff --git a/Mage.Client/src/main/java/mage/client/game/PlayerPanelExt.java b/Mage.Client/src/main/java/mage/client/game/PlayerPanelExt.java
new file mode 100644
index 0000000000..5add0f773a
--- /dev/null
+++ b/Mage.Client/src/main/java/mage/client/game/PlayerPanelExt.java
@@ -0,0 +1,320 @@
+/*
+* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without modification, are
+* permitted provided that the following conditions are met:
+*
+*    1. Redistributions of source code must retain the above copyright notice, this list of
+*       conditions and the following disclaimer.
+*
+*    2. Redistributions in binary form must reproduce the above copyright notice, this list
+*       of conditions and the following disclaimer in the documentation and/or other materials
+*       provided with the distribution.
+*
+* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+* The views and conclusions contained in the software and documentation are those of the
+* authors and should not be interpreted as representing official policies, either expressed
+* or implied, of BetaSteward_at_googlemail.com.
+*/
+
+/*
+ * PlayerPanel.java
+ *
+ * Created on Nov 18, 2009, 3:01:31 PM
+ */
+
+package mage.client.game;
+
+import mage.client.MageFrame;
+import mage.client.cards.BigCard;
+import mage.client.components.HoverButton;
+import mage.client.components.MageRoundPane;
+import mage.client.components.arcane.GlowText;
+import mage.client.components.arcane.ManaSymbols;
+import mage.client.components.arcane.UI;
+import mage.client.dialog.ShowCardsDialog;
+import mage.client.remote.Session;
+import mage.client.util.Command;
+import mage.client.util.Config;
+import mage.client.util.ImageHelper;
+import mage.client.util.gui.BufferedImageBuilder;
+import mage.client.util.gui.ImageResizeUtil;
+import mage.components.ImagePanel;
+import mage.sets.Sets;
+import mage.view.ManaPoolView;
+import mage.view.PlayerView;
+
+import javax.imageio.ImageIO;
+import javax.swing.*;
+import javax.swing.border.Border;
+import javax.swing.border.LineBorder;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.image.BufferedImage;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Random;
+import java.util.UUID;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ * Enhanced player pane.
+ *
+ * @author nantuko
+ */
+public class PlayerPanelExt extends javax.swing.JPanel {
+
+	private UUID playerId;
+	private UUID gameId;
+	private Session session;
+	private PlayerView player;
+
+	private ShowCardsDialog graveyard;
+	private BigCard bigCard;
+
+	private static final int AVATAR_COUNT = 77;
+
+	private static final Border greenBorder = new LineBorder(Color.green, 2);
+	private static final Border redBorder = new LineBorder(Color.red, 2);
+	private static final Border emptyBorder = BorderFactory.createEmptyBorder(0,0,0,0);
+
+    /** Creates new form PlayerPanel */
+    public PlayerPanelExt(boolean me) {
+        initComponents(me);
+    }
+
+	public void init(UUID gameId, UUID playerId, BigCard bigCard) {
+		this.gameId = gameId;
+		this.playerId = playerId;
+		this.bigCard = bigCard;
+		session = MageFrame.getSession();
+	}
+
+	public void update(PlayerView player) {
+		this.player = player;
+		lifeLabel.setText(Integer.toString(player.getLife()));
+		handLabel.setText(Integer.toString(player.getHandCount()));
+		libraryLabel.setText(Integer.toString(player.getLibraryCount()));
+		graveLabel.setText(Integer.toString(player.getGraveyard().size()));
+
+		this.avatar.setText(player.getName());
+		if (player.isActive()) {
+			this.avatar.setBorder(greenBorder);
+		} else if (player.hasLeft()) {
+			this.avatar.setBorder(redBorder);
+		} else {
+			this.avatar.setBorder(emptyBorder);
+		}
+
+		update(player.getManaPool());
+	}
+
+	protected void update(ManaPoolView pool) {
+		manaLabels.get("B").setText(Integer.toString(pool.getBlack()));
+		manaLabels.get("R").setText(Integer.toString(pool.getRed()));
+		manaLabels.get("W").setText(Integer.toString(pool.getWhite()));
+		manaLabels.get("G").setText(Integer.toString(pool.getGreen()));
+		manaLabels.get("U").setText(Integer.toString(pool.getBlue()));
+		manaLabels.get("X").setText(Integer.toString(pool.getColorless()));
+	}
+
+    /** This method is called from within the constructor to
+     * initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is
+     * always regenerated by the Form Editor.
+     */
+    @SuppressWarnings("unchecked")
+    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+    private void initComponents(boolean me) {
+		setLayout(null);
+		setOpaque(false);
+
+		MageRoundPane panelBackground = new MageRoundPane();
+		panelBackground.setXOffset(3);
+		panelBackground.setYOffset(3);
+        panelBackground.setLayout(null);
+        panelBackground.setVisible(true);
+        panelBackground.setBounds(0, 0, 92, 250);
+		add(panelBackground);
+
+		Rectangle r = new Rectangle(80, 80);
+		Random rand = new Random();
+		Integer index = me ? 51 : rand.nextInt(AVATAR_COUNT) + 1;
+		if (index == 64 || index == 65) {
+			index += 2;
+		}
+		Image image = ImageHelper.getImageFromResources("/avatars/face" + index + ".jpg");
+
+		// Avatar
+		BufferedImage resized = ImageResizeUtil.getResizedImage(BufferedImageBuilder.bufferImage(image, BufferedImage.TYPE_INT_ARGB), r);
+		avatar = new HoverButton("player", resized, resized, resized, r);
+		avatar.setBounds(6, 6, r.width, r.height);
+		panelBackground.add(avatar);
+		avatar.setObserver(new Command() {
+			@Override
+			public void execute() {
+				session.sendPlayerUUID(gameId, playerId);
+			}
+		});
+
+		// Life count
+		lifeLabel = new JLabel();
+		lifeLabel.setBounds(30, 82, 30, 30);
+		r = new Rectangle(18, 18);
+		life = (ImagePanel)addParam(panelBackground, "Life", lifeLabel, r, "/info/life.png", false);
+		life.setBounds(9, 90, r.width, r.height);
+
+		// Hand count
+		handLabel = new JLabel();
+		handLabel.setBounds(70, 82, 50, 30);
+		r = new Rectangle(18, 18);
+		hand = (ImagePanel)addParam(panelBackground, "Hand", handLabel, r, "/info/hand.png", false);
+		hand.setBounds(48, 90, r.width, r.height);
+
+		// Poison count
+		poisonLabel = new JLabel();
+		poisonLabel.setText("0");
+		poisonLabel.setBounds(30, 112, 20, 20);
+		//poisonLabel.setBorder(greenBorder);
+		r = new Rectangle(14, 14);
+		poison = (ImagePanel)addParam(panelBackground, "Poison", poisonLabel, r, "/info/poison.png", false);
+		poison.setBounds(12, 116, r.width, r.height);
+
+		// Library count
+		libraryLabel = new JLabel();
+		libraryLabel.setBounds(70, 107, 30, 30);
+		r = new Rectangle(19, 19);
+		library = (ImagePanel)addParam(panelBackground, "Library", libraryLabel, r, "/info/library.png", false);
+		library.setBounds(48, 113, r.width, r.height);
+
+		// Grave count and open graveyard button
+		graveLabel = new JLabel();
+		r = new Rectangle(21, 21);
+		graveLabel.setBounds(35, 250 - r.height - 5, r.width, r.height);
+		grave = (HoverButton)addParam(panelBackground, "Graveyard", graveLabel, r, "/info/grave.png", true);
+		grave.setBounds(9, 250 - r.height - 5, r.width, r.height);
+		grave.setObserver(new Command() {
+			@Override
+			public void execute() {
+				btnGraveActionPerformed(null);
+			}
+		});
+
+		// Cheat button
+		r = new Rectangle(25, 21);
+		image = ImageHelper.getImageFromResources("/info/cheat.png");
+		resized = ImageResizeUtil.getResizedImage(BufferedImageBuilder.bufferImage(image, BufferedImage.TYPE_INT_ARGB), r);
+		cheat = new JButton();
+		cheat.setIcon(new ImageIcon(resized));
+		panelBackground.add(cheat);
+		cheat.setBounds(55, 250 - r.height - 5, r.width, r.height);
+		cheat.setToolTipText("Cheat button");
+		cheat.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				btnCheatActionPerformed(e);
+			}
+		});
+
+		// Add mana symbols
+		addManaImagePanel("W", new Rectangle(11, 140, 15, 15), panelBackground);
+		addManaImagePanel("U", new Rectangle(11, 160, 15, 15), panelBackground);
+		addManaImagePanel("B", new Rectangle(11, 180, 15, 15), panelBackground);
+		addManaImagePanel("R", new Rectangle(50, 140, 15, 15), panelBackground);
+		addManaImagePanel("G", new Rectangle(50, 160, 15, 15), panelBackground);
+		addManaImagePanel("X", new Rectangle(50, 180, 15, 15), panelBackground);
+    }
+
+	private void addManaImagePanel(String mana, Rectangle rect, JPanel container) {
+		BufferedImage imageMana = ManaSymbols.getManaSymbolImageSmall(mana);
+		if (imageMana != null) {
+			ImagePanel manaB = new ImagePanel(imageMana, ImagePanel.ACTUAL);
+			manaB.setBounds(rect.x, rect.y, rect.width, rect.height);
+			manaB.setOpaque(false);
+			container.add(manaB);
+		}
+		JLabel manaCountLabel = new JLabel();
+		manaCountLabel.setText("0");
+		manaCountLabel.setBounds(rect.x + rect.width + 5, rect.y - 8, 30, 30);
+		container.add(manaCountLabel);
+		manaLabels.put(mana, manaCountLabel);
+	}
+
+	/**
+	 * Adds image panel and label to the container panel.
+	 *
+	 * @param containerPanel
+	 * @param text
+	 * @param r
+	 * @param imagePath
+	 * @return
+	 */
+	private JComponent addParam(JPanel containerPanel, String tooltip, JLabel text, Rectangle r, String imagePath, boolean isButton) {
+		if (text != null) {
+			text.setForeground(Color.black);
+			containerPanel.add(text);
+			text.setToolTipText(tooltip);
+		}
+
+		Image image = ImageHelper.getImageFromResources(imagePath);
+		BufferedImage resized = ImageResizeUtil.getResizedImage(BufferedImageBuilder.bufferImage(image, BufferedImage.TYPE_INT_ARGB), r);
+		JComponent component = null;
+		if (isButton) {
+		 	component = new HoverButton(null, resized, resized, resized, r);
+		} else {
+			component = new ImagePanel(resized, ImagePanel.ACTUAL);
+		}
+		component.setToolTipText(tooltip);
+		component.setOpaque(false);
+		containerPanel.add(component);
+
+		return component;
+	}
+
+	private void btnGraveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnGraveActionPerformed
+		if (graveyard == null) {
+			graveyard = new ShowCardsDialog();
+		}
+		graveyard.loadCards(player.getName() + " graveyard", player.getGraveyard(), bigCard, Config.dimensions, gameId, false);
+	}
+
+	private void btnCheatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCheatActionPerformed
+		try {
+			session.cheat(gameId, playerId, Sets.loadDeck("cheat.dck"));
+		} catch (FileNotFoundException ex) {
+			Logger.getLogger(PlayAreaPanel.class.getName()).log(Level.SEVERE, null, ex);
+		} catch (IOException ex) {
+			Logger.getLogger(PlayAreaPanel.class.getName()).log(Level.SEVERE, null, ex);
+		}
+	}
+
+	private HoverButton avatar;
+	private ImagePanel life;
+	private ImagePanel poison;
+	private ImagePanel hand;
+	private HoverButton grave;
+	private ImagePanel library;
+	private JButton cheat;
+
+	private JLabel lifeLabel;
+	private JLabel handLabel;
+	private JLabel libraryLabel;
+	private JLabel poisonLabel;
+	private JLabel graveLabel;
+
+	private Map<String, JLabel> manaLabels = new HashMap<String, JLabel>();
+}
diff --git a/Mage.Client/src/main/java/mage/client/util/ImageHelper.java b/Mage.Client/src/main/java/mage/client/util/ImageHelper.java
index 06f09367b8..75b77b35d3 100644
--- a/Mage.Client/src/main/java/mage/client/util/ImageHelper.java
+++ b/Mage.Client/src/main/java/mage/client/util/ImageHelper.java
@@ -39,6 +39,8 @@ import java.awt.image.ImageObserver;
 import java.awt.image.MemoryImageSource;
 import java.awt.image.PixelGrabber;
 import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.HashMap;
 import java.util.List;
 
@@ -47,6 +49,7 @@ import javax.imageio.ImageIO;
 import mage.Constants.CardType;
 import mage.Constants.Rarity;
 import mage.cards.CardDimensions;
+import mage.client.components.arcane.UI;
 import mage.sets.Sets;
 import mage.view.AbilityView;
 import mage.view.CardView;
@@ -311,4 +314,24 @@ public class ImageHelper {
 		return image;
 	}
 
+	/**
+	 * Get image using relative path in resources.
+	 * @param path
+	 * @return
+	 */
+	public static Image getImageFromResources(String path) {
+		InputStream stream;
+		stream = UI.class.getResourceAsStream(path);
+		if (stream == null) {
+			throw new IllegalArgumentException("Couldn't find image in resources: " + path);
+		}
+
+		try {
+			BufferedImage image = ImageIO.read(stream);
+			return image;
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
 }
diff --git a/Mage.Client/src/main/resources/avatars/Face4.jpg b/Mage.Client/src/main/resources/avatars/Face4.jpg
new file mode 100644
index 0000000000..0a8af4a001
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/Face4.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/Face40.jpg b/Mage.Client/src/main/resources/avatars/Face40.jpg
new file mode 100644
index 0000000000..6d97742c9c
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/Face40.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/Face41.jpg b/Mage.Client/src/main/resources/avatars/Face41.jpg
new file mode 100644
index 0000000000..294a331992
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/Face41.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/Face42.jpg b/Mage.Client/src/main/resources/avatars/Face42.jpg
new file mode 100644
index 0000000000..175fb031a9
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/Face42.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/Face43.jpg b/Mage.Client/src/main/resources/avatars/Face43.jpg
new file mode 100644
index 0000000000..d7a0a72099
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/Face43.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/Face44.jpg b/Mage.Client/src/main/resources/avatars/Face44.jpg
new file mode 100644
index 0000000000..8660ba9d7c
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/Face44.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/Face45.jpg b/Mage.Client/src/main/resources/avatars/Face45.jpg
new file mode 100644
index 0000000000..ca7b4a77d7
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/Face45.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/Face46.jpg b/Mage.Client/src/main/resources/avatars/Face46.jpg
new file mode 100644
index 0000000000..bd1a3697f0
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/Face46.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/Face47.jpg b/Mage.Client/src/main/resources/avatars/Face47.jpg
new file mode 100644
index 0000000000..696a329643
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/Face47.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/Face48.jpg b/Mage.Client/src/main/resources/avatars/Face48.jpg
new file mode 100644
index 0000000000..cca49574b9
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/Face48.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face1.jpg b/Mage.Client/src/main/resources/avatars/face1.jpg
new file mode 100644
index 0000000000..b5d8e51e3c
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face1.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face10.jpg b/Mage.Client/src/main/resources/avatars/face10.jpg
new file mode 100644
index 0000000000..fb5b274464
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face10.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face11.jpg b/Mage.Client/src/main/resources/avatars/face11.jpg
new file mode 100644
index 0000000000..39f0d2ec2a
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face11.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face12.jpg b/Mage.Client/src/main/resources/avatars/face12.jpg
new file mode 100644
index 0000000000..a6e77ef670
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face12.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face13.jpg b/Mage.Client/src/main/resources/avatars/face13.jpg
new file mode 100644
index 0000000000..2b665f235a
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face13.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face14.jpg b/Mage.Client/src/main/resources/avatars/face14.jpg
new file mode 100644
index 0000000000..d57f3963ee
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face14.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face15.jpg b/Mage.Client/src/main/resources/avatars/face15.jpg
new file mode 100644
index 0000000000..af26ef211e
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face15.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face16.jpg b/Mage.Client/src/main/resources/avatars/face16.jpg
new file mode 100644
index 0000000000..592532ab86
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face16.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face17.jpg b/Mage.Client/src/main/resources/avatars/face17.jpg
new file mode 100644
index 0000000000..28c0045ab6
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face17.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face18.jpg b/Mage.Client/src/main/resources/avatars/face18.jpg
new file mode 100644
index 0000000000..a3ead31b07
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face18.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face19.jpg b/Mage.Client/src/main/resources/avatars/face19.jpg
new file mode 100644
index 0000000000..b08ae1c24a
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face19.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face2.jpg b/Mage.Client/src/main/resources/avatars/face2.jpg
new file mode 100644
index 0000000000..4ea232eb1f
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face2.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face20.jpg b/Mage.Client/src/main/resources/avatars/face20.jpg
new file mode 100644
index 0000000000..4567f2e756
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face20.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face21.jpg b/Mage.Client/src/main/resources/avatars/face21.jpg
new file mode 100644
index 0000000000..32dfabedeb
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face21.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face22.jpg b/Mage.Client/src/main/resources/avatars/face22.jpg
new file mode 100644
index 0000000000..e45b888a9e
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face22.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face23.jpg b/Mage.Client/src/main/resources/avatars/face23.jpg
new file mode 100644
index 0000000000..d7fcc94512
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face23.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face24.jpg b/Mage.Client/src/main/resources/avatars/face24.jpg
new file mode 100644
index 0000000000..4d27da5242
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face24.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face25.jpg b/Mage.Client/src/main/resources/avatars/face25.jpg
new file mode 100644
index 0000000000..75b41b0ce6
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face25.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face26.jpg b/Mage.Client/src/main/resources/avatars/face26.jpg
new file mode 100644
index 0000000000..0374b6e362
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face26.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face27.jpg b/Mage.Client/src/main/resources/avatars/face27.jpg
new file mode 100644
index 0000000000..79300af382
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face27.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face28.jpg b/Mage.Client/src/main/resources/avatars/face28.jpg
new file mode 100644
index 0000000000..866c2e0a33
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face28.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face29.jpg b/Mage.Client/src/main/resources/avatars/face29.jpg
new file mode 100644
index 0000000000..12905b63ec
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face29.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face3.jpg b/Mage.Client/src/main/resources/avatars/face3.jpg
new file mode 100644
index 0000000000..4f675de415
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face3.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face30.jpg b/Mage.Client/src/main/resources/avatars/face30.jpg
new file mode 100644
index 0000000000..d02ccd4c29
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face30.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face31.jpg b/Mage.Client/src/main/resources/avatars/face31.jpg
new file mode 100644
index 0000000000..2827794088
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face31.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face32.jpg b/Mage.Client/src/main/resources/avatars/face32.jpg
new file mode 100644
index 0000000000..34a2e5ebf9
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face32.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face33.jpg b/Mage.Client/src/main/resources/avatars/face33.jpg
new file mode 100644
index 0000000000..67cb83e148
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face33.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face34.jpg b/Mage.Client/src/main/resources/avatars/face34.jpg
new file mode 100644
index 0000000000..ce06973f9e
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face34.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face35.jpg b/Mage.Client/src/main/resources/avatars/face35.jpg
new file mode 100644
index 0000000000..d7d3a797e8
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face35.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face36.jpg b/Mage.Client/src/main/resources/avatars/face36.jpg
new file mode 100644
index 0000000000..f573344de5
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face36.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face37.jpg b/Mage.Client/src/main/resources/avatars/face37.jpg
new file mode 100644
index 0000000000..261a2b6fea
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face37.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face38.jpg b/Mage.Client/src/main/resources/avatars/face38.jpg
new file mode 100644
index 0000000000..88b302e239
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face38.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face39.jpg b/Mage.Client/src/main/resources/avatars/face39.jpg
new file mode 100644
index 0000000000..bbffc049ee
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face39.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face49.jpg b/Mage.Client/src/main/resources/avatars/face49.jpg
new file mode 100644
index 0000000000..36185fa970
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face49.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face5.jpg b/Mage.Client/src/main/resources/avatars/face5.jpg
new file mode 100644
index 0000000000..a5c6fd6656
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face5.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face50.jpg b/Mage.Client/src/main/resources/avatars/face50.jpg
new file mode 100644
index 0000000000..30dfaaad5a
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face50.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face51.jpg b/Mage.Client/src/main/resources/avatars/face51.jpg
new file mode 100644
index 0000000000..7ce97fc81e
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face51.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face52.jpg b/Mage.Client/src/main/resources/avatars/face52.jpg
new file mode 100644
index 0000000000..12c2a87b7b
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face52.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face53.jpg b/Mage.Client/src/main/resources/avatars/face53.jpg
new file mode 100644
index 0000000000..64459f6171
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face53.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face54.jpg b/Mage.Client/src/main/resources/avatars/face54.jpg
new file mode 100644
index 0000000000..8973c9221b
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face54.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face55.jpg b/Mage.Client/src/main/resources/avatars/face55.jpg
new file mode 100644
index 0000000000..04dd6f3092
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face55.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face56.jpg b/Mage.Client/src/main/resources/avatars/face56.jpg
new file mode 100644
index 0000000000..dad096e692
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face56.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face57.jpg b/Mage.Client/src/main/resources/avatars/face57.jpg
new file mode 100644
index 0000000000..40afffd355
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face57.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face58.jpg b/Mage.Client/src/main/resources/avatars/face58.jpg
new file mode 100644
index 0000000000..d8be90b83b
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face58.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face59.jpg b/Mage.Client/src/main/resources/avatars/face59.jpg
new file mode 100644
index 0000000000..2a3ccb2732
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face59.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face6.jpg b/Mage.Client/src/main/resources/avatars/face6.jpg
new file mode 100644
index 0000000000..68b2b33864
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face6.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face60.jpg b/Mage.Client/src/main/resources/avatars/face60.jpg
new file mode 100644
index 0000000000..c220ff14c6
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face60.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face61.jpg b/Mage.Client/src/main/resources/avatars/face61.jpg
new file mode 100644
index 0000000000..b81672826a
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face61.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face62.jpg b/Mage.Client/src/main/resources/avatars/face62.jpg
new file mode 100644
index 0000000000..e41517cd7e
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face62.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face63.jpg b/Mage.Client/src/main/resources/avatars/face63.jpg
new file mode 100644
index 0000000000..3b2f2ba439
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face63.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face64.jpg b/Mage.Client/src/main/resources/avatars/face64.jpg
new file mode 100644
index 0000000000..4c93f5d8c3
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face64.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face65.jpg b/Mage.Client/src/main/resources/avatars/face65.jpg
new file mode 100644
index 0000000000..25a99efcfc
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face65.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face66.jpg b/Mage.Client/src/main/resources/avatars/face66.jpg
new file mode 100644
index 0000000000..c0c21c014c
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face66.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face67.jpg b/Mage.Client/src/main/resources/avatars/face67.jpg
new file mode 100644
index 0000000000..522ceac801
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face67.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face68.jpg b/Mage.Client/src/main/resources/avatars/face68.jpg
new file mode 100644
index 0000000000..7c3b98b2a6
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face68.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face69.jpg b/Mage.Client/src/main/resources/avatars/face69.jpg
new file mode 100644
index 0000000000..c8580d6f1d
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face69.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face7.jpg b/Mage.Client/src/main/resources/avatars/face7.jpg
new file mode 100644
index 0000000000..54920cec76
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face7.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face70.jpg b/Mage.Client/src/main/resources/avatars/face70.jpg
new file mode 100644
index 0000000000..6988b55105
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face70.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face71.jpg b/Mage.Client/src/main/resources/avatars/face71.jpg
new file mode 100644
index 0000000000..3ba5e5f9b9
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face71.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face72.jpg b/Mage.Client/src/main/resources/avatars/face72.jpg
new file mode 100644
index 0000000000..ee79324b94
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face72.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face73.jpg b/Mage.Client/src/main/resources/avatars/face73.jpg
new file mode 100644
index 0000000000..4f0f5bf289
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face73.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face74.jpg b/Mage.Client/src/main/resources/avatars/face74.jpg
new file mode 100644
index 0000000000..f40c784576
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face74.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face75.jpg b/Mage.Client/src/main/resources/avatars/face75.jpg
new file mode 100644
index 0000000000..cf70d9b85e
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face75.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face76.jpg b/Mage.Client/src/main/resources/avatars/face76.jpg
new file mode 100644
index 0000000000..ccf1d720b6
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face76.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face77.jpg b/Mage.Client/src/main/resources/avatars/face77.jpg
new file mode 100644
index 0000000000..531577d149
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face77.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face8.jpg b/Mage.Client/src/main/resources/avatars/face8.jpg
new file mode 100644
index 0000000000..a1c27b8b62
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face8.jpg differ
diff --git a/Mage.Client/src/main/resources/avatars/face9.jpg b/Mage.Client/src/main/resources/avatars/face9.jpg
new file mode 100644
index 0000000000..04dbda246a
Binary files /dev/null and b/Mage.Client/src/main/resources/avatars/face9.jpg differ
diff --git a/Mage.Client/src/main/resources/empty.png b/Mage.Client/src/main/resources/empty.png
new file mode 100644
index 0000000000..b4acd98630
Binary files /dev/null and b/Mage.Client/src/main/resources/empty.png differ
diff --git a/Mage.Client/src/main/resources/info/cheat.png b/Mage.Client/src/main/resources/info/cheat.png
new file mode 100644
index 0000000000..cee12e64fd
Binary files /dev/null and b/Mage.Client/src/main/resources/info/cheat.png differ
diff --git a/Mage.Client/src/main/resources/info/grave.png b/Mage.Client/src/main/resources/info/grave.png
new file mode 100644
index 0000000000..b2678b09ca
Binary files /dev/null and b/Mage.Client/src/main/resources/info/grave.png differ
diff --git a/Mage.Client/src/main/resources/info/hand.png b/Mage.Client/src/main/resources/info/hand.png
new file mode 100644
index 0000000000..04482b29c7
Binary files /dev/null and b/Mage.Client/src/main/resources/info/hand.png differ
diff --git a/Mage.Client/src/main/resources/info/library.png b/Mage.Client/src/main/resources/info/library.png
new file mode 100644
index 0000000000..9cb19eb172
Binary files /dev/null and b/Mage.Client/src/main/resources/info/library.png differ
diff --git a/Mage.Client/src/main/resources/info/life.png b/Mage.Client/src/main/resources/info/life.png
new file mode 100644
index 0000000000..a3b5045ff2
Binary files /dev/null and b/Mage.Client/src/main/resources/info/life.png differ
diff --git a/Mage.Client/src/main/resources/info/poison.png b/Mage.Client/src/main/resources/info/poison.png
new file mode 100644
index 0000000000..888091bd1a
Binary files /dev/null and b/Mage.Client/src/main/resources/info/poison.png differ
diff --git a/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/card/arcane/ManaSymbols.java b/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/card/arcane/ManaSymbols.java
index f289f44876..c3ee71fcc1 100644
--- a/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/card/arcane/ManaSymbols.java
+++ b/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/card/arcane/ManaSymbols.java
@@ -113,10 +113,14 @@ public class ManaSymbols {
 	}
 
 	static public String replaceSetCodeWithHTML(String set, String rarity) {
-		if (setImagesExist.containsKey(set)) {
-			Integer width = setImagesExist.get(set).width;
-			Integer height = setImagesExist.get(set).height;
-			return "<img src='file:plugins/images/sets/small/" + set + "-" + rarity + ".png' alt='" + rarity + " ' width=" + width + " height=" + height + ">";
+		String _set = set;
+		if (_set.equals("CON")) {
+			_set = "CFX";
+		}
+		if (setImagesExist.containsKey(_set)) {
+			Integer width = setImagesExist.get(_set).width;
+			Integer height = setImagesExist.get(_set).height;
+			return "<img src='file:plugins/images/sets/small/" + _set + "-" + rarity + ".png' alt='" + rarity + " ' width=" + width + " height=" + height + ">";
 		} else {
 			return set;
 		}
diff --git a/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/plugins/card/info/CardInfoPaneImpl.java b/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/plugins/card/info/CardInfoPaneImpl.java
index f42c355f45..7c702dd5c8 100644
--- a/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/plugins/card/info/CardInfoPaneImpl.java
+++ b/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/plugins/card/info/CardInfoPaneImpl.java
@@ -123,6 +123,8 @@ public class CardInfoPaneImpl extends JEditorPane implements CardInfoPane {
                     }
                 }
 
+
+
                 if (legal.length() > 0) {
                     //buffer.append("<br>");
                     legal = legal.replaceAll("\\{this\\}", card.getName());
diff --git a/Mage/src/mage/abilities/effects/common/ChooseNewTargetsTargetEffect.java b/Mage/src/mage/abilities/effects/common/ChooseNewTargetsTargetEffect.java
index 92b72b6b9f..843225ea6f 100644
--- a/Mage/src/mage/abilities/effects/common/ChooseNewTargetsTargetEffect.java
+++ b/Mage/src/mage/abilities/effects/common/ChooseNewTargetsTargetEffect.java
@@ -62,4 +62,8 @@ public class ChooseNewTargetsTargetEffect extends OneShotEffect<ChooseNewTargets
 		return new ChooseNewTargetsTargetEffect(this);
 	}
 
+	@Override
+	public String getText(Ability source) {
+		return "You may choose new targets for target " + source.getTargets().get(0).getTargetName();
+	}
 }