i think we should introduce method `generateToken`.