each node gets its own id