fleshed out design doc