I’ve reopened this one as it came to mind again as an alternative solution to the problem being discussed in this other topic: