# The Official FVWM Homepage - Concept

The module interface has several design goals:

- Modules are used to implement "extra" or "elaborate" features so that the additional resources these features take don't affect users that don't want to sacrifice the resources.
- Modules (user programs) should be able to provide the window manager with a limited amount of instruction regarding instructions to execute.
- Modules should not be able to corrupt the internal data bases maintained by Fvwm, nor should unauthorized modules be able to interface to Fvwm.
- Modules should be able to extract all or nearly all information held by the window manager, in a simple manner, to provide users with feedback not available from built in services.
- Modules should gracefully terminate when the window manager dies, quits, or is re-started.
- It should be possible for programmer-users to add modules without understanding the internals of Fvwm. Ideally, modules could be written in some scripting language such as Tcl/Tk.