use std::atomic for factory access for containers