use ArrayList instead of private Node