[WIP] add extra string handling functions

This is WIP, I'm just putting this in a PR so other people can look and give suggestions.

ref: #859
You are indeed completely right. I let the symmetry of code structure lead me astray. Any elegant solutions that won't hamper performance on your mind?