Design v0

Merge design_v0 changes into rebased master.