Pretty much almost done now.  Now to fix all the todos.