This project is taken from CS61B Spring 2021 Project 2, see https://github.com/Linde7777/skeleton-sp21/tree/master/proj2