Source: https://repositorio-aberto.up.pt/bitstream/10216/127715/2/404833.pdf