Did part 1 and all of part 2 except simpleJoin