change the param of list to head to avoid name conflict