old_contents: from abc import ABCMeta, abstractmethod, abstractproperty
  
  
  class Commentable(object):
      __metaclass__ = ABCMeta
  
      def root_target_page(self):
          return False
  
      @abstractproperty
      def is_deleted(self):
          return False
  
      @abstractmethod
      def belongs_to_node(self, node):
          return False
  
new_contents: class Commentable(object):
  
      @property
      def root_target_page(self):
          raise NotImplementedError
  
      @property
      def is_deleted(self):
          raise NotImplementedError
  
      def belongs_to_node(self, node):
          raise NotImplementedError
  
subject: Make Commentable a Mixin