Part B. Implementation