You don't need to do this - if someone passes you an instance of a Module you can simply add that directly to the object graph.  In fact, I think you'd want to prefer this because they could initialize that module with internal state.