Semaphore Implemented (BUT NOT FINISHED)