code: def get_minimum_size(self, data):
          
          min_width = 0
          min_height = 0
          for element in self.elements:
              size = (
                  datatypes.Point(0, 0) if element is None
                  else element.get_minimum_size(data)
                  )
              min_height = max(min_height, size.y)
              min_width = max(min_width, size.x)
  
          num_elements = len(self.elements)
          height = min_height * num_elements + self.margin * (num_elements-1)
          return datatypes.Point(min_width, height)
docs: The minimum height is the number of rows multiplied by the
          tallest row.