public boolean loadTimer() {
        boolean test = false;
        if (test || m_test) {
            System.out.println("Loader :: loadTimer() BEGIN");
        }
        
        m_valid = false;
        m_hashString = "";
        m_timerInfo = new int[TIMER_INFO_SIZE];
        
        try {
            setFile(getTimerFile());
            m_in = new Scanner(this.getFile()); // may throw exception
            m_in.useDelimiter(",");
            //try reading file
            try {
                //read the file
                for (int x = 0; x < m_timerInfo.length; ++x) {
                    if (m_in.hasNext()) {
                        m_timerInfo[x] = Integer.parseInt(m_in.next());
                        m_hashString += m_timerInfo[x] + ",";
                    }
                }
                m_hash = m_hashString.hashCode();
                m_in.reset();
                
                if (m_in.hasNext()) {
                    String b = m_in.next();
                    int readHash = 0;
                    readHash = Integer.parseInt(b.substring(1));
                    m_valid = (m_hash == readHash);
                }
            }finally {
                m_in.close();
            }                 
        } catch (Exception exc) {
            System.err.println("Error Reading File");
        }
        if(m_valid) {
            setTimer(new Timer(getGame()));
            getTimer().setHours(m_timerInfo[HOURS]);
            getTimer().setMinutes(m_timerInfo[MINUTES]);
            getTimer().setSeconds(m_timerInfo[SECONDS]);
        } else {
            m_allValid = false;
        }
        
        if (test || m_test) {
            System.out.println("Loader :: loadTimer() END");
        }

        return m_valid;
    }