optimize sao structure