Struggled with this for a bit. My impression is that we're supposed to write code for the getClassName method that does the work of figuring out what the root class name is in the XML data. But I was stumped because the main method calls getClassName before any unmarshalling work is done, so the XML string hasn't been converted to a Java object yet. I could have written string parsing code to search for the second opening XML tag bracket to extract the right tag name and from there get the class name (I think) but that seemed really clunky and probably wrong. I gave up and looked at the answer. return Shop.class? Isn't this a cheating solution? Like if you know you are supposed to solve a math problem but you know what the answer is so you just write the answer instead of doing the work? What is even the point of having a getClassName method if it's just going to always return the same class name? Also why is there an actual XML file in this project that never actually gets used? They have the XML data string created in the Solution's main method without using the XML file. Also why does the CG solution fill in string data for the secretData values inside the Shop class? I thought this information was supposed to come from the XML string!