added singleton concurrency