extensive changes made