simple parallel run and wait lib