anchor.diff:  create_from_ddbitem_list(Model, [Item | Tail]) ->
   	%% skip any metadata entries
   	case proplists:get_value(<<"id">>, Item) of
  -		[{<<"S">>, <<"metadata">>}] ->
  +		[{<<"S">>, <<"__metadata">>}] ->
   			create_from_ddbitem_list(Model, Tail);
   		_X ->
   			[create_from_ddbitem(Model, Item) | create_from_ddbitem_list(Model, Tail) ]
  
positive.code: 	Attrs = SavedRec:attributes(),
  	%% WEIRD: dynamodb does not allow empty strings as values, don't store them.
  	Fields = [ {atom_to_binary(K,latin1), val_to_binary(V), type_of(V)} || {K, V} <- Attrs, not_empty(V) ],
  
  	_Res = ddb:put(atom_to_binary(Model, latin1), Fields),
  
  	{ok, SavedRec}.
  
  update_existing(Record) ->
  	Model  = element(1, Record),
  
negative.code:     'string'.
  
  init_meta_entry(Model) when is_binary(Model)->
      ModelAtom = binary_to_atom(Model, latin1),
      Attributes = ModelAtom:module_info(attributes),
      case proplists:get_value(primary_key, Attributes) of
          undefined ->
              ddb:put(Model, [{<<"id">>, <<"__metadata">>, 'string'},
                              {<<"__counter">>, <<"0">>, 'number'}]);
          [Field] ->
              FieldBin = atom_to_binary(Field, latin1),
              ddb:put(Model, [{FieldBin, <<"__metadata">>, 'string'},
                              {<<"__counter">>, <<"0">>, 'number'}])
      end.
  
  %%
  %% Helper functions for creating records
  