anchor.diff:  	  (cell-code-template cell)))
       
       (defun show-title-input () 
  -      (let ((input (by-selector ".book-title input"))))
  -      (show! input)
  -      (chain input (focus))
  -      (chain input (select))
  -      (hide! (by-selector ".book-title h1")))
  +      (let ((input (by-selector ".book-title input"))
  +	    (textarea (by-selector ".book-title textarea")))
  +	(show! input)
  +	(show! textarea)
  +	(chain input (focus))
  +	(chain input (select))
  +	(hide! (by-selector ".book-title h1"))))
   
       (defun hide-title-input () 
         (hide! (by-selector ".book-title input"))
  +      (hide! (by-selector ".book-title textarea"))
         (show! (by-selector ".book-title h1")))
       
       (defun notebook-title-template (name)
         (who-ps-html
          (:div :class "book-title"
   	     (:input :class "text" :onchange "renameBook(this.value)" :value name)
  +	     (:textarea :onchange "repackageBook(this.value)")
   	     (:h1 :onclick "showTitleInput()" name))))
   
       (defun notebook-template (notebook)
  
positive.code:     
      (defun dom-replace-cell (cell)
        (dom-replace (by-cell-id (@ cell id)) (cell-template cell))
        (mirror! cell))
  
      ;; CodeMirror and utilities
      (defun register-helpers (type object)
  
negative.code: 	      (chain (notebook-facts *notebook*) (unshift (list id 'cell nil)))
  	      (dom-append (by-selector ".cells")
  			  (cell-template cell))
  	      (setup-cell-mirror! cell)
  	      (scroll-to-elem (by-cell-id id))
  	      (show-editor id))))
  	'change-cell-type
  