some of parts1 and 2 done