Revert "Revert "my teacher's code""

This reverts commit a61fa0ca1d57cedc87962a2439054f8155750e30.