need to understand the concurrency and parallelism