added part a
added part b
added part c
added part d