channel with semaphores :)