introducing concurrent dictionary, and moved task impl up to just below interface impl