function:
start:
end:
size:
type:
left
right
midpoint
trapezoid
update