3.3 Explanation of Subroutines