Share tags2

Supersedes #11351.
Its a bad idea to do anything other than setting member variables in the constructor. This should just be called once the first method is accessed