Plugins are the only one way to change the functionality of a modeling tool. The main purpose of the plugin architecture is to add a new functionality to your modeling tool. Although there is a limited ability to remove an existing functionality using plugins. 
 A plugin must contain the following resources:
- A directory
 
- Compiled java files, packaged into a jar file
 
- A plugin descriptor file
 
- Optional files used by the plugin
 
Typically a plugin creates some GUI components allowing a user to use the plugin functionality. Generally, this is not necessary because the plugin can listen for some changes in a project and activate itself on the desired changes.