Source: https://trepo.tuni.fi/bitstream/handle/10024/101431/GRADU-1497004852.pdf