add architecture docs