module decouple