new implementation:  more modularization

such module