throw only when setting a new module different from existing one