Source: http://www.hcibook.com/e3-docs/slides/notes-pdf/e3-chap-03-3up.pdf