add string support, and tests