fix the nonsense logic on selective update
update TODO