added string completion ability