# Introduction

FMTC uses a *root* and *stores* to structure its data.

There is generally a single root (which generally corresponds to a single [backend](https://fmtc.jaffaketchup.dev/v9/general/initialisation#backends)), which contains multiple stores. Cached tiles can belong to multiple stores, which keeps duplication minimized.

{% hint style="warning" %}
The structures use the ambient backend when a method is invoked on it, not at construction time.

Therefore, it is possible to construct an `FMTCStore`/`FMTCRoot` (see below) before initialisation, but 'using' it will throw `RootUnavailable`.
{% endhint %}
