structure: use public nodelike submodule