update set implementation