Source: https://owasp.org/www-pdf-archive//Esapi-design-patterns.pdf