semaphores added