rotate list reimpl