mainly added a string append function