add powxn, improve copy list with random pointer