more efficient rotation