design doc (about ready to implement)