add functions to make arbitrary string qwersion possible