Add the basic architecture and modify the code