add more logic to tokens