better module initialization