extensive changes to design