added copy, convertArrayList, invert