uses token instead node