finish the rest of the TODO's