////////////////////// DRAWING ////////////////////
        /// <summary>
        /// DrawSquare method
        /// </summary>
        /// <param name="g"></param>
        /// <param name="aChessSquare"></param>
        private void DrawSquare(Graphics g, ChessSquare aChessSquare)
        {
            if (aChessSquare != null)
            {
                aChessSquare.Draw(g, squareFactory);

                ChessPiece chessPiece = (ChessPiece)aChessSquare.GetChessPiece();

                DrawPiece(g, chessPiece);
            }
        }
        ////////////////////// DRAWING ////////////////////
        /// <summary>
        /// DrawSquare method
        /// </summary>
        /// <param name="g"></param>
        /// <param name="aChessSquare"></param>
        /// <param name="aIsHighlight"></param>
        /// <param name="aIsLastMove"></param>
        private void DrawSquare(Graphics g, ChessSquare aChessSquare, bool aIsHighlight, bool aIsLastMove)
        {
            if (aChessSquare != null)
            {
                aChessSquare.Draw(g, squareFactory, aIsHighlight, aIsLastMove);

                ChessPiece chessPiece = (ChessPiece)aChessSquare.GetChessPiece();

                DrawPiece(g, chessPiece);
            }
        }