diff --git a/TODO.md b/TODO.md
index 92a3ff5d..79e9d5f3 100644
--- a/TODO.md
+++ b/TODO.md
@@ -7,21 +7,26 @@
- generate unique names when branching (unique name A + branching direction = unique name B)
- efficient substitution
- type safer and easy to use AST
-- add simple frontend language with grin conversion
+- add simple frontend language with grin conversion (GHC/STG -> GRIN)
- generate apply
-# JIT requirements
-
-simplifaction transformations required by the codegen
-
-- [x] vectorisation
-- [x] case simplification
-- [x] split fetch operation
-- [x] right hoist fetch operation
-- [x] register introduction
# CodeGen
-- LLVM codegen from high level GRIN (HPT + Type Set + Tagged Union)
-- GRIN type system (typed simplification)
- simplify/refactor LLVM codegen
+- vectorisation = tagged union conversion (on branch: var-tag-node-is-tagged-union) ; better syntax for tagged union (parser + pretty printer)
+- read back LLVM reduced result to Haskell data (including the heap)
+
+# GRIN framework
+
+- scoped type environment
+- scoped names ; it would make inlining easy (the idea is similar to bound)
+ - HPT
+ - optimisiations
+ - type env
+
+# HPT
+
+- LLVM backend for HPT IR
+- inline support
+- sharing analysis