fixed most of the TODOS