separate string functions from core