public void pullFile()    {

        //  this code is about putting files where they are supposed to be
        File gameDir = new File(System.getProperty("user.home") + "/Documents/Games/");

        // ok its not there so create it and the default file...
        if(!gameDir.exists()){
            gameDir.mkdir();
            // creates a default file  using the current random settings and default player name
            pushFile("Player 1") ;
        }
        // initialise a scanner to parse the ints into the undo array
        Scanner mScan = new Scanner(System.in);
        File playerInFile = new File(gameDir.getAbsolutePath() + "/" + playerName + ".gam");
        int [] holdInbound = new int[gamecells] ;
        if (! playerInFile.canRead()){
            // create from a default position    == copy default file   functional requirement  - to read from disk
            pushFile(playerName);
        }
        BufferedReader bufferedReader = null;
        String readIt = "";
        try{
            bufferedReader = new BufferedReader(new FileReader(playerInFile))  ;
            // set up the player containers to accept data
            curGame.clear();
            clearGamestats();


            // read in the game stats - 1st 10 lines of strings...
            for (int i = 0; i < 10 && readIt != null; i++)  {

                // read the next line of the file
                readIt = bufferedReader.readLine();

                 // add the line to the game stats file
                gameStats[i] = readIt;
            }
            while (readIt != null)     {
                // now for the undo array
                readIt = bufferedReader.readLine();
                int i = 0;
                // pass it to the scanner
                mScan = new Scanner(readIt);
                while (mScan.hasNextInt())  {
                    holdInbound[i]  = mScan.nextInt();
                    i++;  //   todo i can go out of bounds here / out of scope   check catch exceptions
                }
                // writes it to the undo object in player
                curGame.push(holdInbound.clone());
            }

        }
        catch(IOException e){
             System.out.println("Player File not found - copy default"); }
        catch(ArrayIndexOutOfBoundsException e)
            {System.out.print("Invalid undo array too long"); }
        catch(Exception e)  {    System.out.print("probably a data type exception here " + e.getMessage());
        }

    }