a lot of list operations rotate and so on