revised rotation method