move removal code from list to list-node