fix in level computation
introduce make_module funs to create engine modules
add engine registration