resturctured module