Have completed most of the TODO