NEW: Semaphore class