         (error-message
             (concat "max sharability " (number-to-string s) " is outside of range [0, 1]"))))
 
-(defun tn-set-max-sharability-0 ()
-    (interactive)
-    (set-max-sharability 0.0))
-
-(defun tn-set-max-sharability-1 ()
-    (interactive)
-    (set-max-sharability 0.25))
-
-(defun tn-set-max-sharability-2 ()
-    (interactive)
-    (set-max-sharability 0.5))
-
-(defun tn-set-max-sharability-3 ()
-    (interactive)
-    (set-max-sharability 0.75))
-
-(defun tn-set-max-sharability-4 ()
-    (interactive)
-    (set-max-sharability 1.0))
+(defun tn-set-max-sharability ()
+    (interactive)
+    (let ((r (read-character-as-number)))
+        (set-max-sharability (/ r 4))))
 
 
 ;; UPDATES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

        (error-message
            (concat "weight " (number-to-string s) " is outside of range (0, 1]"))))

(defun tn-set-default-weight-1 ()
    (interactive)
    (set-default-weight 0.25))

(defun tn-set-default-weight-2 ()
    (interactive)
    (set-default-weight 0.5))

(defun tn-set-default-weight-3 ()
    (interactive)
    (set-default-weight 0.75))

(defun tn-set-default-weight-4 ()
    (interactive)
    (set-default-weight 1.0))

(defun set-min-weight (s)
    (if (and (in-view) (>= s 0) (<= s 1))


(defun tn-choose-depth ()
    (interactive)
    (let ((depth (read-character-as-number)))
            (if (< depth 1) (error-message (concat "depth of " (number-to-string depth) " is too low (must be >= 1)"))
                (if (> depth 5) (error-message (concat "depth of " (number-to-string depth) " is too high (must be <= 5)"))
                    (request-view nil tn-mode tn-root depth tn-style tn-min-sharability tn-max-sharability tn-default-sharability tn-min-weight tn-max-weight)))))

(defun tn-refresh-to-forward-view ()
    (interactive)
