added Token model and generate_token method