Separated out token type generation to its own class