added more functional rotation