use Cythonized OrderedDict as base for OrderedSet for more speed