Rework the architecture