   <Submessage message={message} read={read}/>
 SubmessageID.displayName = 'SubmessageID'
 
-Submessage = ({message, read}) ->
+Submessage = React.memo ({message, read}) ->
   <ErrorBoundary>
     <WrappedSubmessage message={message} read={read}/>
   </ErrorBoundary>

  SubmessageHeader: -> SubmessageHeader
  message: -> @

MaybeRootHeader = ({message}) ->
  return null unless message?.root?
  <ErrorBoundary>
    <RootHeader message={message}/>

      sort: ['key']
    .fetch()
  , [message.group, _.keys(message.tags ? {}).join '\n']
  children = message.readChildren ? useChildren message
  can = useTracker ->
    delete: canDelete message._id
    undelete: canUndelete message._id
