# Lesson 2 complete; primaries still deferred

Learner finished lesson 2 (root, handles & CRUD): `getDirectory` → `getFileHandle` / `getDirectoryHandle`, main-thread `createWritable` / `getFile`, `remove` / `removeEntry`, async listing. External primaries (web.dev OPFS article; Storage for the web) remain unread. Next ZPD: workers & `FileSystemSyncAccessHandle` — teach when the sync path wins and how exclusive locks work; do not re-teach the main-thread CRUD map from zero.
