def __init__(self, cpu_factory, registers):
        self._registers = OrderedDict()
        for group, register_list in registers.iteritems():
            registers = OrderedDict([(x.name(),
                                      cpu_factory.create_register(self, x))
                                     for x in register_list])

            self._registers[group] = registers