added almost all of SJ's wanted changes