Restructure to avoid recompilation