use set instead of set_if_empty