todo list and added some more methods and a number of horrible hacks