# improv v0.1.1 - Table of Contents > Improv-over-BLE Wi-Fi provisioning for Elixir/Nerves devices, on BlueZ over D-Bus ## Pages - [Improv](readme.md) - Guides - [Architecture](architecture.md) - [Host integration](host_integration.md) - [Protocol and security model](protocol.md) ## Modules - Manager - [Improv](Improv.md): Improv-over-BLE Wi-Fi provisioning manager — the GenServer that ties the protocol codec, GATT server and advertisement into a working subsystem. - [Improv.Supervisor](Improv.Supervisor.md): Supervises the Improv provisioning processes as a `:one_for_all` group. - GATT + advertisement transport - [Improv.Advert](Improv.Advert.md): Exports an `org.bluez.LEAdvertisement1` object and registers it with the adapter's `org.bluez.LEAdvertisingManager1`, so the device advertises the Improv service while provisioning is armed. - [Improv.GattServer](Improv.GattServer.md): Exports the Improv GATT application over D-Bus and serves the inbound method calls BlueZ makes against it. - [Improv.Protocol](Improv.Protocol.md): Pure wire codec for the [Improv Wi-Fi BLE protocol](https://www.improv-wifi.com/ble/). - Wi-Fi backend - [Improv.Wifi](Improv.Wifi.md): Wi-Fi operations for Improv provisioning: scan for networks, apply submitted credentials, and derive the post-provisioning redirect URL. The seam the `Improv` manager calls into.