completed string library - still need to test