Implemented locking inside MonoidAdapterRegistry
Implemented caching inside MonoidAdapterRegistry