merged in non module based version