add node pool to avoid allocations