programming assignement 2 complete