Source: https://www.nclark.net/Solution_Preparation.pdf