Use concerns to extract token feature
generate token is no longer private method