use buffer in string class, still needs cleanup