Share tags2

Supersedes #11351.
Therefore we maybe can reuse the effort of touching all this and use dependency injection here too