Finished everything but semaphore