rotate function prepare