# Integration Guide

These components that can be **extensible** and/or **replaceable:**

* **extensible**: means the basis of component is provided by heima, but can be extended to have customised features. Analog: browser vs browser extensions.
* **replaceable**: means the whole component can be fully replaced/customised on client side, as long as it provides given communication API.

**extensible components:**

* omni-authenticator: client can add extra user-auth
* omni-executor: client can define extra:
  * conversion logic from intent → blockchain path
  * cross-chain swap provider
* heima main-net: client can add extra logic of lifecycle and data management

**replaceable components**:

* heima-route: client can provide its own single-chain trading pool
* signer service: if client wants to hold the private keys of EOA accounts
