2.a,b,c implemented