improved stringtools