Why do we need to keep the ordering? Notice that an OrderedDict consumes more memory. Ordering on integers is blazzing fast and could be done in the .sites property if really needed.