finished part3
finsihed part4