Made message spec a class instead of a named tuple and documented message init.