def _split_horizontal(self, section, width, height):
        """For an horizontal split the rectangle is placed in the lower
        left corner of the section (section's xy coordinates), the top
        most side of the rectangle and its horizontal continuation,
        marks the line of division for the split.
        +-----------------+
        |                 |
        |                 |
        |                 |
        |                 |
        +-------+---------+
        |#######|         |
        |#######|         |
        |#######|         |
        +-------+---------+
        If the rectangle width is equal to the the section width, only one
        section is created over the rectangle. If the rectangle height is
        equal to the section height, only one section to the right of the
        rectangle is created. If both width and height are equal, no sections
        are created.
        """
        # First remove the section we are splitting so it doesn't 
        # interfere when later we try to merge the resulting split
        # rectangles, with the rest of free sections.
        #self._sections.remove(section)

        # Creates two new empty sections, and returns the new rectangle.
        if height < section.height:
            self._add_section(Rectangle(section.x, section.y+height,
                section.width, section.height-height))

        if width < section.width:
            self._add_section(Rectangle(section.x+width, section.y,
                section.width-width, height))