anchor.diff:        return objectSize;
       }
   
  -Do we need classname?
   
       const std::string& Order::getClassName() const {
         static const std::string CLASS_NAME = "com.example.Order";
         return CLASS_NAME;
       }
   
  -Why `createDeserializable`?
  +Provide a constructor in a parameter-less wrapper that can be called to create a prototypical instance (called `createDeserializable()` here).
   
       std::shared_ptr<PdxSerializable> Order::createDeserializable() {
         return std::make_shared<Order>(0, "", 0);
  
positive.code:     namespace customserializable {
  
  - Must provide `fromData()` and `toData()`.
  - Specify the keys in the same order in fromData and toData.
  - The order (no pun intended) in which the keys appear IS SIGNIFICANT in PDX Serialization, though it probably 
  shouldn't be since we're supposedly indexing by name, not by position in the byte stream.
  
      ```
      void Order::fromData(PdxReader& pdxReader) {
  
negative.code:     }
      ```
  
  Optionally override and add detailed methods as needed. In this example, we override `toString()` and implement `size()` and `classname()`.
  
      std::string Order::toString() const {
        return "OrderID: " + std::to_string(order_id_) + " Product Name: " + name_ +
  	     " Quantity: " + std::to_string(quantity_);
      }
  
  
      size_t Order::objectSize() const {
        auto objectSize = sizeof(Order);
  