use a SortedSet to ensure that the messages forwarded in the order