Part 4: the implementation
Implementation overview