@Override
 public <R extends HttpRequest> R bindToRequest(R request, Object payload) {
   checkArgument(
       checkNotNull(payload, "memoryInMB") instanceof Integer,
       "this binder is only valid for Integers!");
   Integer memoryInMB = Integer.class.cast(payload);
   XMLBuilder cpuItem;
   try {
     cpuItem = XMLBuilder.create("Item").a("xmlns", ns).a("xmlns:rasd", RESOURCE_ALLOCATION_NS);
     cpuItem.e("rasd:AllocationUnits").t("byte * 2^20");
     cpuItem.e("rasd:Description").t("Memory Size");
     cpuItem.e("rasd:ElementName").t(memoryInMB.toString() + " MB of memory");
     cpuItem.e("rasd:InstanceID").t("5");
     cpuItem.e("rasd:Reservation").t("0");
     cpuItem.e("rasd:ResourceType").t(ResourceType.MEMORY.value());
     cpuItem.e("rasd:VirtualQuantity").t(memoryInMB.toString());
     cpuItem.e("rasd:Weight").t("0");
     Properties outputProperties = new Properties();
     outputProperties.put(javax.xml.transform.OutputKeys.OMIT_XML_DECLARATION, "yes");
     request = super.bindToRequest(request, cpuItem.asString(outputProperties));
   } catch (Exception e) {
     Throwables.propagate(e);
   }
   return request;
 }