Included comments about what each function does