finish the main part of po