match lazy structures, remove module recursion