allow an arbitrary module number
Switch to backend / frontend implementation