big cleanup and redo