Can we simplify this? Move it to base class ..
1) data_ may be pointer and method data() then could be in base class
2) selection getter then could be also in base class