minor change: IndexQueue uses self-defined IndexNode