update README and add source design doc