move token logic to a concern