refactor token