         (= cmd "note")
         ((current-todo :note-add) joined-args)
         ;
-        (= cmd "plain")
-        (println ((current-todo :plain)))
+        ; manipulation
+        ;
+        (= cmd "done")
+        (if (empty? args)
+          ((current-todo :set-done) true)
+          (let [m (find-by-name ((current-todo :todos)) joined-args)]
+            (if m
+              ((m :set-done) true)
+              (println "Konnte Todo nicht finden")
+              )))
+        ;
+        (= cmd "undone")
+        (if (empty? args)
+          ((current-todo :set-done) false)
+          (let [m (find-by-name ((current-todo :todos)) joined-args)]
+            (if m
+              ((m :set-done) false)
+              (println "Konnte Todo nicht finden")
+              )))
+        ;
+        ; navigation
         ;
         (= cmd "first")
         (let [ft (first ((current-todo :todos)))]

        (swap! current-stack rest)
        ;
        (= cmd "cd")
        (loop [todos ((current-todo :todos))]
          (if (= (((first todos) :name)) joined-args)
            (swap! current-stack conj (first todos))
            (recur (rest todos))
            ))
        )
      ; exit clause

    (println ((todolist :name)))
    (let [[cmd & args] (inp/user-cmd-input ">> ")
          current-todo (or (first @current-stack) todolist)
          joined-args  (stri/join " " args)
          find-by-name (fn [todos-seq compare-name]
                         (loop [todos todos-seq]
                           (cond
                             (empty? todos)
                             nil
                             (= (((first todos) :name)) compare-name)
                             (first todos)
                             :else
                             (recur (rest todos))
                             )))
          ]
      (cond
        ;
        ; show
        ;
        (= cmd "ls")
        ((current-todo :print) "")
        ;
        (= cmd "plain")
        (println ((current-todo :plain)))
        ;
        ; create
        ;
        (= cmd "create")
        ((current-todo :todo-add) (t-item/todo-create joined-args))
