first draft with opacity tests