bunch of design changes