do lots of design and fixes