+\section{\textbf{Data Structure Abstraction}}\r
+This section outlines the data structure abstraction that is provided to the IoT application. It is similar to a hash table key-value store.\r
+\r
+Operations on the key-value store:\r
+\begin{itemize}\r
+ \item Put operation\r
+ \item Get operation\r
+ \item Check put status\r
+ \item Create New Key Operation. \r
+\end{itemize}\r
+\r
+\subsection{\textbf{Put Operation}}\r
+This operation is described as follows:\r
+\begin{itemize}\r
+ \item Has the form: put(Key-value-list, guard)\r
+ \item Updates the key-value pairs listed in the key-value list.\r
+ \item Has a boolean guard that is passed in that is able to read from keys that are associated with the same arbitrator as the keys being updated\r
+ \item Returns an ID for this put (Transaction ID) or an error code if put is formatted incorrectly.\r
+ \item Underlying action: Creates a transaction, creates a record and inserts that record in the data structure (doing deletes and other house keeping operations as needed).\r
+\end{itemize}\r
+\r
+\subsection{\textbf{Get Operation}}\r
+\begin{itemize}\r
+ \item Has the form: get(key-name)\r
+ \item Gets the current value of a key, also returns a machine ID for the arbitrator of that key.\r
+ \item Underlying action: Does a pull from the server and resolves the latest value for the specified key (as mentioned above). Also does house keeping work like key rescue and sequence number notification as needed.\r
+\end{itemize}\r
+\r
+\subsection{\textbf{Check put status}}\r
+\begin{itemize}\r
+ \item Has the form of a callback.\r
+ \item Notifies the application of an aborted transaction.\r
+ \item Underlying action: when an abort notification is received then the callback is called. This is checked whenever this application makes changes to the data structure.\r
+\end{itemize}\r
+\r
+\subsection{\textbf{Create New Key Operation}}\r
+\begin{itemize}\r
+ \item Has the form: createKey(key-name, machine-id)\r
+ \item Creates a new key with an arbitrator at a specific machine ID\r
+ \item Underlying action: Creates a new key notification, creates a record and inserts that record in the data structure (doing deletes and other house keeping operations as needed).\r
+\end{itemize}\r
+\r
+\r
+\r