Tunnels
Een tunnel is een reis die in stappen is verdeeld — een aanmelding, een checkout, een verlenging — waarvan de route kan veranderen afhankelijk van de antwoorden van de bezoeker. Het pakket onthoudt waar elke bezoeker staat, laat ze de stappen zien die ze kunnen zien, en stuurt ze terug naar waar ze thuishoren wanneer ze proberen vooruit te springen.
Een boom van cursors
Een tunnel is opgebouwd als een boom, niet als een lijst. Een stap die vanaf twee plaatsen wordt bereikt, is twee cursors, elk met zijn eigen hash en zijn eigen opgeslagen waarden: dat is wat een tak laat groeien stappen die een andere niet heeft, en wat de route die je hebt genomen, aan het einde van elke tunnel wordt weergegeven.
Een sessie in de database
Het openen van een tunnel creëert een sessie, die de browsersessie alleen kent aan de hand van zijn id. Het bevat de waarden die de stappen opslaan en verloopt een dag na de laatste getoonde stap — of eerder, wanneer die stap daarom vraagt. Verlopen sessies worden door de planner verwijderd, elke 15 minuten; voltooide en wachtende sessies worden bewaard.
Waar de bezoeker naartoe kan gaan
Elke stap beslist of deze kan worden getoond en waar de bezoeker anders naartoe moet worden gestuurd. Links en knoppen worden getekend met dezelfde regels, zodat een link nooit leidt tot een omleiding terug: geen volgende knop waar de weg splitst, geen weg terug langs een betaling, niets om naar terug te keren in een afgesloten sessie.