Smart recompilation, interfaces and implementation