Tüneller
Bir tünel, adımlar halinde kesilmiş bir yolculuktur — bir kayıt, bir ödeme, bir yenileme — ziyaretçinin verdiği yanıtlara göre değişen bir yol. Paket, her ziyaretçinin nerede durduğunu hatırlar, görebilecekleri adımlardan geçirir ve öne atlamaya çalıştıklarında onları ait oldukları yere geri gönderir.
Kursörler ağacı
Bir tünel, bir liste olarak değil, bir ağaç olarak inşa edilir. İki yerden ulaşılan bir adım, kendi hash'ine ve kendi saklanan değerlerine sahip iki kursördür: bu, bir dalın başka birinde olmayan adımları büyütmesini sağlar ve geldiğiniz yol, her tünelin sonunda okunan yerdir.
Veritabanında bir oturum
Bir tünel açmak, tarayıcı oturumu tarafından yalnızca kimliğiyle bilinen bir oturum yaratır. Adımların depoladığı değerleri tutar ve gösterilen son adımın üzerinden bir gün sonra sona erer — veya o adım bunu isterse daha önce. Süresi dolmuş oturumlar, her 15 dakikada bir zamanlayıcı tarafından silinir; tamamlanmış ve beklemede olanlar saklanır.
Ziyaretçinin gidebileceği yerler
Her adım, gösterilip gösterilemeyeceğine ve aksi takdirde ziyaretçiyi nereye göndereceğine karar verir. Bağlantılar ve butonlar aynı kurallarla çizilir, bu yüzden bir bağlantı asla geri yönlendirme yapmaz: yolun ayrıldığı yerde bir sonraki buton yok, bir ödemenin ötesine geri dönme yok, kapalı bir oturumda geri dönülecek hiçbir şey yok.