You need to provide an API (possibly class interface) for use by the user. Within the implementation of function in that API, provide suitable synchronisation, hide back end data structures, etc...