refactoring
token parser