system design doc