    @type command :: {Genomu.cell, Genomu.revision, Genomu.command,
                      Genomu.Coordinator.ref}
    @type commit :: {:C, ITC.t, binary, [Genomu.Transaction.entry], Genomu.Coordinator.ref}
+
+   @nil_value MsgPack.pack(nil)
 
    require Lager
 

     {value, rev} = lookup_cell(cell, state)
     case cmd do
       {cmd_name, operation} when cmd_name in [:apply, :set] ->
         new_value = Genomu.Operation.apply(operation, value)
         serialized = Genomu.Operation.serialize(operation)
         stage({key, new_rev}, serialized, new_value, state)
       {:get = cmd_name, operation} ->
         new_value = Genomu.Operation.apply(operation, value)
     end
     case cmd_name do
       :apply ->

     state
   end

   defp apply_operation(operation, value) do
     try do
       Genomu.Operation.apply(operation, value)
     catch type, msg -> 
       Lager.error "Error #{inspect {type, msg}} occurred while processing operation #{inspect operation} on #{inspect value}"
       :error
     end
   end

 end