HUGE cleanup and update