add high level design to docs