Reuse layouts, scripts, and functions across several FM files;
define customizable libraries of components, then instantiate layout objects from them as needed
easily trace all component usage
DRY: maximise reuse
update component instances across a solution by modifying the underlying components
speed up development and reduce bugs
Any medium to large FM project.