beleive semaphore is finished and correct. added signaling