private static String[] ProcessMSG(String msg){
        String processedMSG[] = new String[3];
        boolean goodRead = true;
        
        for (int i = 0; i < processedMSG.length; i++)
            processedMSG[i] = "";

        // msg format should be #checksum{data} 
        // process msg
        processedMSG[0] = String.valueOf(msg.charAt(0));
        for (int i = 1; i < msg.length(); i++){
            if (goodRead){
                try {Integer.parseInt(String.valueOf(msg.charAt(i)));}
                catch (NumberFormatException e) { goodRead = false;}
                if (goodRead){
                    processedMSG[1] += String.valueOf(msg.charAt(i));
                } else { // back up 1 so we dont lose a char
                    i--;
                }//end if
            } else {
                processedMSG[2] += String.valueOf(msg.charAt(i));
            }
        }
        
        if (CheckIfMalformed(processedMSG))
            processedMSG[0] = "-1";         // malformed message

        // validate crc if not malformed
        if (!processedMSG[0].equals("-1")){
            if (Long.parseLong(processedMSG[1]) != ChecksumValue(processedMSG[2])){
                processedMSG[0] = "-2";     // bad check sum
            } // end if
        } // end if
        return processedMSG;
    } // end function