Part 2: Code design