diff --git a/CHANGELOG.md b/CHANGELOG.md
index a76ef59..c4dae27 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,39 @@
All notable changes to this project will be documented in this file.
+## Unreleased changes
+
+### Added
+- Whitelist API:
+ - `NimBLEDevice::whiteListAdd`: Add a device to the whitelist.
+ - `NimBLEDevice::whiteListRemove`: Remove a device from the whitelist.
+ - `NimBLEDevice::onWhiteList`: Check if the device is on the whitelist.
+ - `NimBLEDevice::getWhiteListCount`: Gets the size of the whitelist
+ - `NimBLEDevice::getWhiteListAddress`: Get the address of a device on the whitelist by index value.
+
+- Bond management API:
+ - `NimBLEDevice::getNumBonds`: Gets the number of bonds stored.
+ - `NimBLEDevice::isBonded`: Checks if the device is bonded.
+ - `NimBLEDevice::deleteAllBonds`: Deletes all bonds.
+ - `NimBLEDevice::getBondedAddress`: Gets the address of a bonded device by the index value.
+
+- `NimBLECharacteristic::getCallbacks` to retrieve the current callback handler.
+- Connection Information class: `NimBLEConnInfo`.
+- `NimBLEScan::clearDuplicateCache`: This can be used to reset the cache of advertised devices so they will be immediately discovered again.
+
+### Changed
+- FreeRTOS files have been removed as they are not used by the library.
+- Services, characteristics and descriptors can now be created statically and added after.
+- Excess logging and some asserts removed.
+
+### Fixed
+- `NimBLECharacteristicCallbacks::onSubscribe` Is now called after the connection is added to the vector.
+- Corrected bonding failure when reinitializing the BLE stack.
+- Writing to a characterisic with a std::string value now correctly writes values with null characters.
+- Retrieving remote descriptors now uses the characterisic end handle correctly.
+- Missing data in long writes to remote descriptors.
+- Hanging on task notification when sending an indication from the characteristic callback.
+
## [1.2.0] - 2021-02-08
### Added
diff --git a/README.md b/README.md
index db3b1ea..7f37eff 100644
--- a/README.md
+++ b/README.md
@@ -68,9 +68,3 @@ in your project/CMakeLists.txt after the line `include($ENV{IDF_PATH}/tools/cmak
* [Jeroen88](https://github.com/Jeroen88) for the amazing help debugging and improving the client code.
-# Todo
-- Improve host reset handler
-- Implement random address handling
-- Implement bond management
-- Add Bluetooth Mesh
-
diff --git a/docs/Migration_guide.md b/docs/Migration_guide.md
index 59854e5..62406c6 100644
--- a/docs/Migration_guide.md
+++ b/docs/Migration_guide.md
@@ -69,8 +69,6 @@ For example `BLEServer::createService(SERVICE_UUID)` will work just as it did be
### Characteristics
-The constructor for `(Nim)BLECharacteristic` is now private, so if you currently subclass it to add logic you should switch to use `NimBLEService::createCharacteristic` instead. Any custom processing logic previously in a `BLECharacteristic` subclass should be moved to a `NimBLECharacteristicCallbacks` subclass instead, and passed into `NimBLECharacteristic::setCallbacks`.
-
`BLEService::createCharacteristic` (`NimBLEService::createCharacteristic`) is used the same way as originally except the properties parameter has changed.
When creating a characteristic the properties are now set with `NIMBLE_PROPERTY::XXXX` instead of `BLECharacteristic::XXXX`.