Update to explain some of the architecture