add shell and string function