 
 (defun visit-target ()
     (interactive)
-    (let ((key (current-line-target)))
+    (let ((key (current-target-key)))
         (if key
-            (request-view key view-depth view-style view-min-sharability view-max-sharability view-min-weight view-max-weight))))
+            (request-view key view-depth view-style view-min-sharability view-max-sharability view-min-weight view-max-weight)
+            (no-target))))
 
 (defun visit-link ()
     (interactive)
-    (let ((key (current-line-link)))
+    (let ((key (current-link-key)))
         (if key
-            (request-view key view-depth view-style view-min-sharability view-max-sharability view-min-weight view-max-weight))))
+            (request-view key view-depth view-style view-min-sharability view-max-sharability view-min-weight view-max-weight)
+            (no-link))))
 
 (defun search ()
     (interactive)

(setq view-atoms nil)
(setq view-current-line 1)

(defun find-id ()
    (let ((line (current-line)))
        (if (string-match "^[0-9A-Za-z@&#]*:[0-9A-Za-z@&]*: " line)

(defun not-in-view ()
	(error-message "this command must be executed from within a view"))

(defun no-link ()
    (error-message "there is no link associated with this line"))
    
(defun no-target ()
    (error-message "there is no target associated with this line"))
    
(defun refresh-view ()
    (interactive)
    (if view-root
