add detailed architecture description