diff --git a/TODO.md b/TODO.md
new file mode 100644
index 0000000000000000000000000000000000000000..fd3c66e2cff9ff55f46fbdb194dc33c31e8c959c
--- /dev/null
+++ b/TODO.md
@@ -0,0 +1,40 @@
+# TODO
+
+## Reaction Roles
+
+_Involves: File r/w + parsing, discord reactions_
+
+So, for reaction roles, afaict this is what needs to be done
+
+-   Migrate config.rs to something like `config.toml`
+-   Complete `reaction_roles.rs`
+    -   Load from config (roles, and the rr msg, if they exist)
+    -   Code up the `!rr init` command
+    -   Monitor reactions, update user roles etc.
+    -   On updated to `config.toml` (and on bot load, now that I think of it) overwrite the rr msg with content based on roles in config
+    -   **Bonus:** add command like `!rr add :emoji: role name`
+
+## LDAP Integration
+
+_Involves: LDAP r/w, email,discord nicknames+roles_
+
+-   Add a `discord_ID` or similar field to the LDAP database
+-   Add a `!link <ucc-username>` command, which
+    -   Created a verification token
+        -   Perhaps just hash discordID+username with hardcoded salt (is this bad?)
+    -   Sends an email with a verification token (and instruction to `!register`)
+    -   Goes back to discord and run `!register <token>`
+-   Add a `!register <token>` command
+    -   Do hash, compare, if same update LDAP database
+    -   Either add `registered` role or remove `unregistered`
+        -   End result, unable to change nickname
+    -   Set nickname to something like `<tla> (<first-name>)`
+-   Add a `!unlink` command
+    -   Remove LDAP entry
+    -   Make able to change nickname again
+-   **Bonus:** be able to specify nickname format for registered users in `config.toml`, and add way to update
+
+## Fun with accounts
+
+-   `!dispense <item name>`
+    -   Dispense the item