The new version introduces lazy loading and transformations for arts. It removes support for pygame.Surface and transform AnimatedSurface into Art. Geometric shapes are now Arts as well. Add transformation classes to transform an art: rotations, scaling, slowing down, set introduction, colors, and combination with other arts ....
The algorithm to get the surface is also modified. Every Element has now a make_surface() method that will create a new surface, and a notify_change() that will make the element's parent that a new computation is needed. This method is called when the surface has changed.
get_surface now has a defined behavior: if has_changed => last_surface = make_surface; return last_surface