better module handling