better list->string
start on varargs support