i think introducing solarmutexreleaser  clear makes the code less readable and maintainable  not more for a  guard  object like areleaser it is important to easily determine the range of code it guards  and the easiest way to do that is with a block reference datatransfer  xtransferable  xdataobj solarmutexreleaser areleaser xdataobj xclipboard  getcontents and especially so for solarmutexreleaser  where each use of it is a gross hack it is actually a good thing to have these hacks stand out like ugly warts in the code  