change ext_ref template

- rename template (its not only useful for functors)
- add interface class
- update comments