I think this patch needs more explanation.

Why do we need to go through the indirection of "new Module"? I tried to find documentation for "module" but no luck.