add token logic