avoid leaking of internal types
- use abstract superrole bound to a public interface
- avoid passing and even mentioning unused callin argument
- pass a string id instead of IPresentationContext
4 files changed