The issue it's more complex than it looks at the first sight. Your proposal would work with the assumptions that all threads were `li` elements inside an unique `ul` container, so only thing that we would need it's picking the thread, updating, and appending again. However this it's not the case, because we have a group `header` & `ul` per each day! So Imagine that we you have two threads:
- Thread A: Message 'Hi', Timestamp: 'Today', phoneNumber: '123123'
- Thread B: Message 'Bonjour', Timestamp: 'Yesterday', phoneNumber: '333111'

In this case you have two groups `header` & `ul` (this comes from Building Blocks) for each thread (because the timestamp). Imagine that you receive a new message today from '333111' with the text 'Hola!'. In this case it's not only moving Thread B to the first group, we need to remove the unused second group as well (`header` & `ul`)! That's why we need this code.