added 1
added parts 2 and 3