Arch

Should we really use indexes here?

IMHO shared pointers are nicer (and also more extensible)