Move remaining semantic to separate modules.