main part done