done up to part 2b