add design doc
some progress