Redo the architecture