bug fix: rotateBy (1/4), not  rotate (1/4)