separate string implementation / close #3