Part 4 complete, tests and implementation.