tested on circular shift. and works~~~