main part completed