restructure recompile.