First commit - need to fix semaphore issue.