more concurrent-friendly structure