add circular list functions