Rework again, add some TODOs