HW12, Please Refer to HOMEWORK12.txt in our master branch