private Move_Two processInput(String xmlString) {
        //goal is to convert XML representation, embedded
        //in xmlString, to instance of move object. Ideally
        //this could be done auto-magically, but these technologies
        //are heavyweight and not particularly robust. A nice
        //compromise is to use a generic tree parsing methodology.
        //such exists for XML -- it is called DOM. DOM is mapped
        //to many languages and is robust and simple (if a bit
        //of a hack). JDOM is superior but not as uniformly adopted.

        //first goal is to yank these values out of XML with minimal effort
        int moveLocation;
        String color;
        String requestType;

        //parse XML into DOM tree
        //getting parsers is longwinded but straightforward
        try {
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();

            //once you have parse just call parse. to parse a string vs.
            //a File requires using an InputSource. In any case result is
            //a DOM tree -- ie an instance of org.w3c.dom.Document
            Document document
                    = builder.parse(new InputSource(new StringReader(xmlString)));
            //must invoke XML validator here from java. It is a major advantage
            //of using XML

            //assuming validated we continue to parse the data ...

            //always start by getting root element
            Element root = document.getDocumentElement();
            //get the value of the id attribute
            requestType = root.getAttribute("type");
            if (requestType.equalsIgnoreCase("move")) {
                Element locElement =
                        (Element) document.getElementsByTagName("location").item(0);
                Element colorElement =
                        (Element) document.getElementsByTagName("color").item(0);
                moveLocation =
                        Integer.parseInt(locElement.getFirstChild().getNodeValue());
                color = colorElement.getFirstChild().getNodeValue();
                Move_Two moveTwo = new Move_Two(1, color, moveLocation);
                return moveTwo;
            } else return null;
        } catch (Exception e) {
            System.out.print(e);
            return null;
        }
    }