Source: https://www.noveltyjournals.com/upload/paper/Implementation of Constructor-633.pdf