Use interface so other vendor can use user concurrency with minimal tweaking