I don't know it about the module design. I think that it's a different item if improve the design.
I committed only fix of the problem that it was hard to avoid on this pull request.