Source: https://cs.slu.edu/~fritts/CSCI140_F12/schedule/MARS Tutorial.pdf