Added a cached version of Rotate