Use smart pointers for registries
Switch back to regular pointers, on second thought
Use vectors instead of sets for control of order