finish the main part of so po update