note that the ~~ operator is experimental