Part 2: Writing reusable code with functions and subroutines