Rethink shared pointers
Rethink usage of shared pointers as general solution in RCI.
- Responsibility of data (creation, editing)
- Constness (eg. const-getter returning shared pointers)
- Necessity or benefits of shared pointers