Source: https://www.politesi.polimi.it/bitstream/10589/101402/1/emilijan_sekulovski_master_thesis.pdf