   [conn ^long id data-items]
   (let [merged (-> (nn/get conn id) (:data) (merge data-items) (timestamp-update))]
     (do
-      (p/p :nn-update (nn/update conn id merged))
-      (p/p :nn-get (nn/get conn id)))))                     ; Notice that we get it again to retrieve the updated values
+      (prof/p :nn-update (nn/update conn id merged))
+      (prof/p :nn-get (nn/get conn id)))))                     ; Notice that we get it again to retrieve the updated values
 
 (defn create-or-merge-node!
   "Creates a node from a connection with a label. If a node with the id

(defn create-node!
  "Creates a node from a connection with a label"
  [conn label data-items]
  (let [node (p/p :nn-create (nn/create conn (timestamp-create data-items)))]
    (do
      (p/p :nl-add (nl/add conn node label))
      node)))

(defn merge-node!

(defn update-link-count!
  "Updates the incoming and outgoing link count for all nodes in the database"
  [conn]
  (->>
    (tx/in-transaction
      conn
      (tx/statement "MATCH ()-[r:LINKSTO]->(n:Article) WITH n, COUNT(r) as incoming SET n.incoming = incoming")
      (tx/statement "MATCH (n:Article)-[r:LINKSTO]->() WITH n, COUNT(r) as outgoing SET n.outgoing = outgoing")
      (tx/statement "MATCH (n:Article) WHERE n.outgoing is null WITH n SET n.outgoing = 0")
      (tx/statement "MATCH (n:Article) WHERE n.incoming is null WITH n SET n.incoming = 0"))
    (prof/p :update-link-count))
  )

;
; Node query and creation functions
