support string, vector<string>, vector<vector<string> >, and vector<vector<bool> >