protected constructor
diamond operator
ThreadLocal.withInitial
protected constructor for abstract classes