initial pass of design
fixed merge