check if semaphor is still needed, now that opacity is being used?