use of caching messages to avoid extra fetch