should split off rotate and offset to different function
more rotation checks