public DescribeLaunchConfigurationsResult unmarshall(Node node) throws Exception {
    if (node == null) return null;

    DescribeLaunchConfigurationsResult describeLaunchConfigurationsResult =
        new DescribeLaunchConfigurationsResult();

    NodeList launchConfigurationsNodes = XpathUtils.asNodeList("LaunchConfigurations/member", node);
    for (int launchConfigurationsIndex = 0;
        launchConfigurationsIndex < XpathUtils.nodeLength(launchConfigurationsNodes);
        ++launchConfigurationsIndex) {
      Node launchConfigurationsNode = launchConfigurationsNodes.item(launchConfigurationsIndex);
      describeLaunchConfigurationsResult
          .getLaunchConfigurations()
          .add(new LaunchConfigurationUnmarshaller().unmarshall(launchConfigurationsNode));
      launchConfigurationsNode.getParentNode().removeChild(launchConfigurationsNode);
    }

    Node nextTokenNode = XpathUtils.asNode("NextToken", node);
    describeLaunchConfigurationsResult.setNextToken(
        new StringUnmarshaller().unmarshall(nextTokenNode));

    return describeLaunchConfigurationsResult;
  }