refactoring, added support for TOKEN:name