old_contents: from debug import logger
  from messagetypes import MsgBase
  
  class Message(MsgBase):
      def __init__(self):
          return
  
      def decode(self, data):
          self.subject = data["subject"]
          self.body = data["body"]
  
      def encode(self, data):
          super(Message, self).encode()
          try:
              self.data["subject"] = data["subject"]
              self.data["body"] = data["body"]
          except KeyError as e:
              logger.error("Missing key ", e.name)
          return self.data
  
      def process(self):
          logger.debug("Subject: %i bytes", len(self.subject))
          logger.debug("Body: %i bytes", len(self.body))
  
new_contents: from debug import logger
  from messagetypes import MsgBase
  
  
  class Message(MsgBase):
      def __init__(self):
          return
  
      def decode(self, data):
          # UTF-8 and variable type validator
          if type(data["subject"]) is str:
              self.subject = unicode(data["subject"], 'utf-8', 'replace')
          else:
              self.subject = unicode(str(data["subject"]), 'utf-8', 'replace')
          if type(data["body"]) is str:
              self.body = unicode(data["body"], 'utf-8', 'replace')
          else:
              self.body = unicode(str(data["body"]), 'utf-8', 'replace')
  
      def encode(self, data):
          super(Message, self).encode()
          try:
              self.data["subject"] = data["subject"]
              self.data["body"] = data["body"]
          except KeyError as e:
              logger.error("Missing key ", e.name)
          return self.data
  
      def process(self):
          logger.debug("Subject: %i bytes", len(self.subject))
          logger.debug("Body: %i bytes", len(self.body))
  
subject: Add extended encoding message validation