improved token scanners