added need_module()