The current implementation relies on lots (LOTS) of calls to Annotation.__setitem__, which is far from optimal.