added TODOs, working from the top down