add token parameter
refactor