re-write from old
re-write from old
fixed little bug in variant = operator for const char* and ustr