initial implementation of string. some tests written but not all.