module architecture