added & to for semaphore