Move Token to TokenGenerator and externalise name