use setdefault