Add architecture document and docs