Source: https://mechanics.stackexchange.com/questions/11158/most-appropriate-small-engine-to-rebuild-for-learning-purposes