 
     ;; setup the couchbase database
     (log/i "creating manager")
-    ;; (*a) and "this" are the same
+    ;; should change (*a) "this" in production, this is easy for REPL
     (def manager (Manager. (AndroidContext. (*a)) (.get (.getField Manager "DEFAULT_OPTIONS") nil)))
     (.setStorageType manager "ForestDB")
     (log/i "creteing database")

    (log/i "updating data using update method hendler")
    (.update document (document-updater))
    (log/i (str "new data after using putProperties: " (.getProperties document)))
    ;; starting servers
    ;; (toast "starting HTTPD-WSD servers" :long)
    (start-servers httpd-wsd)

    )
)

;; document updater initator with dedicated update method for updating a document.
;; update method handles the conflict error itself by re-reading the document, 
;; then calling your block again with the updated properties, 
;; and retrying the save. It will keep retrying until there is no conflict
(defn document-updater
  []
  (let [updater (proxy [Document$DocumentUpdater] []
