Вы в каждой команде "проглатываете" первый токен. Может, не передавать его вообще? Может, сразу до вызова команды бить вход на токены и передавать в метод список токенов?