# Important Terms

A Workers application is built up out of one or more Workers, connected together in a call-chain hierarchy that looks like a tree. Lets take an example of an application that is built out of four Workers, whose Worker call-chain hierarchy is represented by the diagram below.

![An application's Worker call-chain hierarchy](https://2767648102-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZWihGdeYUalj239OUdAB%2Fuploads%2F6fhIfzR0CPCJ9ldSqCGe%2Fimage.png?alt=media\&token=c1e53f1f-8c9c-4ee1-8ffc-b1a606ee06f1)

## Head Worker

Every Workers application has a Head Worker. An applications Head Worker is the Worker at the very top of an application's Worker call-chain hierarchy. In the figure below, **Worker A** is the Head Worker of the application.

![Worker A is the head Worker of the application](https://2767648102-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZWihGdeYUalj239OUdAB%2Fuploads%2FYdrMbm6d8b4oJSghiXuQ%2Fimage.png?alt=media\&token=396496d5-c2b9-4d2f-b703-c9c98774d3cc)

## Caller

A Caller is a Worker that calls (or loads) one or more Workers. In the figure below, **Worker A** is the Caller of Workers B, C and D.

![Worker A is the Caller of Worker B, C and D.](https://2767648102-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZWihGdeYUalj239OUdAB%2Fuploads%2FYdrMbm6d8b4oJSghiXuQ%2Fimage.png?alt=media\&token=396496d5-c2b9-4d2f-b703-c9c98774d3cc)

## subWorker

A subWorker is a Worker that is called (or loaded) by another Worker. In the figure below, **Worker B, Worker C and Worker D** are subWorkers of Worker A.

![Worker B, C and D are subWorkers of Worker A](https://2767648102-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZWihGdeYUalj239OUdAB%2Fuploads%2F5wLVzXTLIfcEjTg8filU%2Fimage.png?alt=media\&token=a98a4984-30f5-4838-a9d1-b51146474cde)

## Worker Main Data Wire

A Worker's Main Data Wire is the Worker class wire that starts at the Worker's object constant and runs through the Worker's MHL. See the image below.

<figure><img src="https://2767648102-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZWihGdeYUalj239OUdAB%2Fuploads%2FgBLyqZI7ZSE7pVANZu1c%2Fimage.png?alt=media&#x26;token=62b0c7db-4e06-4477-a676-d788dd7ebf80" alt=""><figcaption><p>Worker Main Data Wires and Worker Handles</p></figcaption></figure>

## Worker Handles

Worker handles are class wires that contain a Worker's Public Properties (such as the Worker's Message Queue). Worker handles are used to send messages to a specific Worker instance via the Worker's Public Request VIs. An example of a Worker's handle could be:

1. subWorker class wires that are used by a Caller's MHL (such as in the image above).
2. The Worker class wire that exits an [Asynchronous Launcher VI](https://docs.workersforlabview.io/launcher-vis#asynchronous-launcher-vis).
3. The Worker class wire that exits a [Dynamically Load Worker Public API VI](https://docs.workersforlabview.io/workers-tools/workers-tools-menu/public-api-builder#create-dynamically-load-worker-vi).
